首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >碎片事务加载空视图,但在旋转设备后显示碎片

碎片事务加载空视图,但在旋转设备后显示碎片
EN

Stack Overflow用户
提问于 2014-08-31 19:58:36
回答 5查看 3K关注 0票数 10

我正在构建一个由google文档设计的导航抽屉,但是我有一个问题,片段没有被替换。http://developer.android.com/training/implementing-navigation/nav-drawer.html

当应用程序第一次加载时,会加载默认片段。点击抽屉列表上的另一项会留下一个空视图,但是在旋转设备时,会加载所选的片段。

代码语言:javascript
复制
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");
    }
}
EN

回答 5

Stack Overflow用户

发布于 2015-07-12 04:22:07

对于导航菜单片断事务,我使用以下方法,这样片断将被添加并放在顶部。

代码语言:javascript
复制
String name = "myFragment";
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment, name)
.commit();

查找attach()函数。它遵循不同的片段生命周期。还要确保你的布局文件framelayout是可见的。

票数 4
EN

Stack Overflow用户

发布于 2016-01-13 12:38:55

如下所示修改您的代码:

代码语言:javascript
复制
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代码与您的片段代码一起共享。

票数 0
EN

Stack Overflow用户

发布于 2016-01-19 09:13:15

添加片段后,它将被添加到activity状态,其视图将被添加到defined Container视图。但是通过附加,如果片段还没有添加到UI中,则不会显示任何内容。它只是附加到片段管理器。然而,如果视图已经被添加到UI中的容器中,并在那之后被分离,那么通过附加它,它将再次显示在它的容器中。最后,如果您想临时销毁fragment View,并希望在将来显示和构建它的视图而不丢失它在activity中的状态,您可以使用attach和detach。

https://stackoverflow.com/a/18979024/3329488

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25591750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档