如何保存片段的状态抽屉式导航 [英] How to save state of fragment in navigation drawer

查看:113
本文介绍了如何保存片段的状态抽屉式导航的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用谷歌导航抽屉库从下面的链接...
https://github.com/Arasthel/GoogleNavigationDrawerMenu

I'm using google navigation drawer library from the following link... https://github.com/Arasthel/GoogleNavigationDrawerMenu

见下文code:

    mDrawer.setOnNavigationSectionSelected(new GoogleNavigationDrawer.OnNavigationSectionSelected() {
        @Override
        public void onSectionSelected(View v, int i, long l) {
            Fragment fragment = null;
            switch (i) {
            case 0:
                // fragment = new HomeFragment();
                break;
            case 1:
                fragment = new NewsFragment();

                break;
            case 2:
                fragment = new TransferFragment();
                break;
            case 3:
                fragment = new BlogsFragment();
                break;
            case 4:
                fragment = new FixturesFragment();
                break;
            case 5:
                fragment = new BestXIFragment();
                break;
            case 6:
                fragment = new FeedFragment();

                break;

            default:
                break;
            }
            if (fragment != null) {
                FragmentManager fragmentManager = getFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.main, fragment).commit();

            } else {
                // error in creating fragment
                Log.e("MainActivity", "Error in creating fragment");
            }
        }
    });

我的片段用异步任务,每当我这些片段异步任务再次加载。之间切换

My fragments are using async task and whenever I switch between these fragments the async task is loading again.

所以,我怎么可以保存片段的状态?

So How can I save the state of the fragment?

推荐答案

而不是创造每一次新的片段,你可以保持片段的数组,只是返回相同的对象:

Instead of creating new fragment every time you can keep an array of fragments and just return the same object:

mDrawer.setOnNavigationSectionSelected(new GoogleNavigationDrawer.OnNavigationSectionSelected() {

Fragment[] fragments ={new HomeFragment(),new NewsFragment(),  new TransferFragment(), new BlogsFragment(),new FixturesFragment() , new BestXIFragment(),new FeedFragment()};
 @Override

    public void onSectionSelected(View v, int i, long l) {

        if (fragment[i] != null) {
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.main, fragments[i]).commit();

        } else {
            // error in creating fragment
            Log.e("MainActivity", "Error in creating fragment");
        }
    }
});

这篇关于如何保存片段的状态抽屉式导航的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆