当我单击每个导航列表时,将创建带有导航抽屉的应用程序,新片段将加载。片段之一具有listView。当我单击此列表时,加载另一个片段。现在,我使用导航抽屉移至不同的片段。每次我想返回上一个片段而没有任何数据更改时都按返回按钮,该怎么办?

我正在使用以下代码加载片段:

FragmentManager fm = getFragmentManager();
        for (int i = 0; i < fm.getBackStackEntryCount(); i++) {
            fm.popBackStack();
        }
    FragmentTransaction fragmentTransaction = fm.beginTransaction();
            fragmentTransaction.replace(R.id.fragmentHome, fr);
            fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            fragmentTransaction.commit();


简而言之:我每回按一次,我都想加载之前的片段而不重新创建它

最佳答案

我认为这可能会有所帮助

只需执行PopBackStack中的Fragmentmanager

FragmentManager fm = getFragmentManager();
        for (int i = 0; i < fm.getBackStackEntryCount(); i++) {
            fm.popBackStack();
        }


在那个片段中

View mView ; //this will be global

@Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        try {
            if (mView == null) {
                // view will be initialize for the first time .. you can out condition for that if data is not null then do not initialize view again.
                mView = inflater.inflate(R.layout.xml,container, false);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return mView;
    }

关于android - Android fragment 回压没有任何数据丢失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41605669/

10-10 14:30