从backstack获取的片段再次调用onCreateView()

Leo*_*yen 7 android fragment back-stack

请帮我解决我的问题.

我有MainActivity一个framelayout.我想将一些片段替换为framelayout.现在我正在鼓励一个问题,它是:

1)我创建并将片段A放到framelayout.片段A叫onCreateView...等.

2)然后我创建并将片段B放到布局中......片段A被放在后台上并且它被调用onPause()(不叫onDeattach(),onDestroy......)

3)我按下了按钮.片段A是从后端堆栈获得的,但它onCreateView()再次调用.此操作使我的应用程序还有其他一些问题.

所以我的问题是如何在backstack中存储片段A并且它不会重新创建视图.

这是用于更改片段的方法:

public static void setContent(FragmentManager managerFragment, Fragment detailFragment) {
    if (managerFragment != null) {
        if(lastFragment==null && detailFragment instanceof HomeVer3Fragment ||
                (lastFragment!=null && detailFragment instanceof HomeVer3Fragment && lastFragment instanceof HomeVer3Fragment)){
            return;
        }
        String tag=detailFragment.getClass().getName();
        managerFragment.popBackStackImmediate(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        FragmentTransaction ft = managerFragment.beginTransaction();
        ft.replace(R.id.content_frame, detailFragment);
        ft.addToBackStack(tag);
        ft.commit();
        lastFragment = detailFragment;
    }
}
Run Code Online (Sandbox Code Playgroud)

感谢和抱歉我的坏问题,我的英语不太好.

And*_*ker 2

在这里查看我的完整帖子动态更改片段选项卡主机内的片段?

至于您重新加载的问题(我假设),您可以做一些类似下面提到的事情:

(1) 初始化一个布尔值

boolean android_hacker = false;
Run Code Online (Sandbox Code Playgroud)

(2) 现在假设您需要获取数据并使用列表视图创建一些视图。现在在这个阶段设置“android_hacker = true;” 获取所有数据后。

(3) 现在,当你再次回到同一个片段时,说“FragmentA”,然后检查 OnCreateView 上的值,如上所述。

if(android_hacker != true){
        new GoAsyncTask().execute();
        }else{
// Perform stuff U need
}
Run Code Online (Sandbox Code Playgroud)

就是这样。希望对某人有所帮助