and*_*uae 10 android fragmenttransaction navigation-drawer
我正在构建一个由谷歌文档设计的导航抽屉,但我有一个问题,片段没有被替换.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");
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
对于导航菜单片段事务,我使用以下方法,这样片段将被添加并放在顶部.
String name = "myFragment";
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment, name)
.commit();
Run Code Online (Sandbox Code Playgroud)
查找attach()函数.它遵循不同的片段生命周期.还要确保您的布局文件framelayout可见.
修改您的代码如下:
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");
}
Run Code Online (Sandbox Code Playgroud)
如果该解决方案不适合您,请共享 xml 代码以及您的片段代码。
| 归档时间: |
|
| 查看次数: |
2240 次 |
| 最近记录: |