[英]navigation drawer nested fragments
I've tried almost everything but nothing seems to work. 我已经尝试了几乎所有内容,但似乎没有任何效果。 I have a navigation drawer with these fragments, say: A - viewpager B - listview C - listview Now in B and C, listview are clickable items with each having their own fragments.
我有一个带有这些片段的导航抽屉,例如:A-viewpager B-listview C-listview现在在B和C中,listview是可单击的项目,每个项目都有自己的片段。 So ListViewA has a fragment, ListViewB has a fragment.
因此,ListViewA有一个片段,ListViewB有一个片段。 I want proper back navigation.
我想要正确的后退导航。 This is how I'm doing it, when initializing the navigation drawer:
初始化导航抽屉时,这就是我的操作方式:
Fragment fragment = getHomeFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,
android.R.anim.fade_out);
fragmentTransaction.replace(R.id.frame, fragment, CURRENT_TAG);
fragmentTransaction.commit();
And when choosing an option from listview: 当从列表视图中选择一个选项时:
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.anim.fade_in,
android.R.anim.fade_out);
ft.replace(R.id.frame, new FragmentB(),"HubSettings");
ft.addToBackStack(null);
ft.commit();
If I put addtoBackStack() in both transactions, back navigation works fine but navigation drawer title is not being set properly. 如果我在两个事务中都添加了addtoBackStack(),则后向导航可以正常工作,但是导航抽屉标题设置不正确。 I want to disable back button and force changing fragments from navigation drawer so that action bar title is set properly.
我想禁用后退按钮并强制更改导航抽屉中的片段,以便正确设置操作栏标题。 How do I disable back button when it comes to CFragment?
当涉及CFragment时,如何禁用后退按钮?
One can go from menu like: Navigation Drawer->B Fragment->Listview option 1 Fragment Pressing Back -> Back to B Fragment -> Disable Back Button 可以从以下菜单中进行选择:导航抽屉-> B片段->列表视图选项1片段按下 Back-> Back to B Fragment-> Disable Back Button
Just override onBackPressed
in your Activity which contains the fragments like this: 只需重写
onBackPressed
中的onBackPressed
,其中包含如下片段:
@Override
public void onBackPressed() {
int count = getSupportFragmentManager().getBackStackEntryCount();
if (count > 0) {
getSupportFragmentManager().popBackStack();
updateDrawerToggle();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.