我正在构建一个由google文档设计的导航抽屉,但是我有一个问题,片段没有被替换。http://developer.android.com/training/implementing-navigation/nav-drawer.html
当应用程序第一次加载时,会加载默认片段。点击抽屉列表上的另一项会留下一个空视图,但是在旋转设备时,会加载所选的片段。
public void selectNavActivty(int position){
// TODO Changing between the different screens selection
fragment = null;
switch (position) {
case 0:
fragment = OverLay.newInstance();
break;
case 1:
fragment = Dummy.newInstance();
break;
}
if(fragment != null) {
// attach added to handle viewpager fragments
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.replace(R.id.content_frame, fragment).attach(fragment)
.addToBackStack(null);
trans.commit();
getFragmentManager().executePendingTransactions();
} else {
Log.d("Drawer Activity","Error in creating Fragment");
}
}发布于 2015-07-12 04:22:07
对于导航菜单片断事务,我使用以下方法,这样片断将被添加并放在顶部。
String name = "myFragment";
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment, name)
.commit();查找attach()函数。它遵循不同的片段生命周期。还要确保你的布局文件framelayout是可见的。
发布于 2016-01-13 12:38:55
如下所示修改您的代码:
if(fragment != null) {
// attach added to handle viewpager fragments
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.replace(R.id.content_frame, fragment);
trans.addToBackStack(null);
trans.commit();
} else {
Log.d("Drawer Activity","Error in creating Fragment");
}如果解决方案对您不起作用,那么可以将xml代码与您的片段代码一起共享。
发布于 2016-01-19 09:13:15
添加片段后,它将被添加到activity状态,其视图将被添加到defined Container视图。但是通过附加,如果片段还没有添加到UI中,则不会显示任何内容。它只是附加到片段管理器。然而,如果视图已经被添加到UI中的容器中,并在那之后被分离,那么通过附加它,它将再次显示在它的容器中。最后,如果您想临时销毁fragment View,并希望在将来显示和构建它的视图而不丢失它在activity中的状态,您可以使用attach和detach。
https://stackoverflow.com/questions/25591750
复制相似问题