使用fragment导致页面错乱重叠

2019-04-02  本文已影响0人  eliteTyc

原因

解决办法

@Override
    public void onSaveInstanceState(Bundle outState) {
        outState.putInt("nowSelectedPage",index);
        super.onSaveInstanceState(outState);
    }
-  注解:在outState这个bundle中保存当前选中的页面信息,存放key——value值
@Override
    protected void onCreate(Bundle savedInstanceState) {
        pages = new HashMap<>();
        super.onCreate(savedInstanceState);
        fragmentManager = getSupportFragmentManager();
        if (savedInstanceState != null) {
             //读取上一次界面Save的时候tab选中的状态,默认是选中第一个
            lastIndex=savedInstanceState.getInt("nowSelectedPage",0);
            pages.put(PageEnum.HOME_PAGE,fragmentManager.findFragmentByTag(FRAGMENT_TAG[0]));
            pages.put(PageEnum.BOARD_PAGE,fragmentManager.findFragmentByTag(FRAGMENT_TAG[1]));
            pages.put(PageEnum.FOLLOW_PAGE,fragmentManager.findFragmentByTag(FRAGMENT_TAG[2]));
            pages.put(PageEnum.MINE_PAGE,fragmentManager.findFragmentByTag(FRAGMENT_TAG[3]));
        }
         // 选中index
         setTabSelection(lastIndex);
    
    }
transaction.add(R.id.fl_main,homeFragment,FRAGMENT_TAG[0]);
transaction.add(R.id.fl_main,boardFragment,FRAGMENT_TAG[1]);
transaction.add(R.id.fl_main,followFragment,FRAGMENT_TAG[2]);
transaction.add(R.id.fl_main,mineFragment,FRAGMENT_TAG[3]);

这样操作后,fragment就不会再出现错乱重叠的情况。

!!!这是之前看见别人的一篇博客,我忘记了是谁的博客,这里在记录一下,完全没有侵权的意思,如有冒犯,请正主留言我加上博客地址。

上一篇下一篇

猜你喜欢

热点阅读