我正在尝试遵循Google最新的良好做法,即通过导航组件实现单个活动应用程序。
但是,在阅读了整个Navigation文档之后,我仍然认为很多情况下他们没有解决。
例如,如何实现以下情况:
注意:由于不再需要启动屏幕,因此应从后退弹出窗口。
第1节的所有片段中都应该有一个导航抽屉,允许用户在本节的各个片段之间导航。
但是,该部分中的某些片段可以导航到应该具有后退按钮(而不是抽屉)的新区域。
答案 0 :(得分:1)
您是否尝试过使用选定的Navigation Drawer Activity
创建新项目?
1。抽屉
在xml中,您应该为此活动添加一个FrameLayout
来保存片段。然后,您可以开始将此活动用作片段的容器,并在DrawerMenuItem
上单击以加载特定片段。
我使用这种方法重新加载片段:
public void replaceFragment (Fragment fragment, Bundle args){
fragment.setArguments(args);
getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
}
并从活动中这样调用它:
replaceFragment(Fragment.newInstance(), args)
然后,您可以在所有碎片中找到自己的抽屉。
2。带有后退箭头的详细信息屏幕
对于另一个带有“文章详细信息”的屏幕,您可以从详细信息开始活动:
startActivity(new Intent(packageContext, ArticleDetailsActivity.class));
然后没有抽屉,您就拥有一个后退按钮。
3。溅起
关于创建“好的”初始屏幕Google“正确的Android初始屏幕”,在中级(由Sylvain Saurel撰写)或bignerdranch(由Chris Stewart撰写)中涉及该主题的帖子。
答案 1 :(得分:0)
使用navController上的DestinatedChangedListener
锁定和解锁抽屉模式。