How to maintain fragment's state in the application

前端 未结 4 1825
长情又很酷
长情又很酷 2020-12-09 22:01

How to maintain fragment\'s state when it is shown within FragmentTabHost?

Thanks to this tutorial, I\'m able to implement FragmentTabHost in my applica

4条回答
  •  爱一瞬间的悲伤
    2020-12-09 22:53

    Modify your Activity to override onSaveInstanceState and your onCreate method to restore from a "savedInstanceState".

    public static final String TAB_STATE = "TAB_STATE";
    
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        outstate.putParcelable(TAB_STATE, mTabHost.onSaveInstanceState());
        super.onSaveInstanceState(outState);
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fag_tab_host_main);
    
        mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
        mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
        if(savedInstanceState==null || savedInstanceState.getParcelable(TAB_STATE)==null){
        mTabHost.addTab(mTabHost.newTabSpec("audio").setIndicator("Audio"),
                AudioContainerFragmentClass.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("video").setIndicator("Video"),
                VideoContainerFragmentClass.class, null);
        } else{
            mTabHost.onRestoreInstanceState(savedInstanceState.getParcelable(TAB_STATE));
        }
    
    }
    

提交回复
热议问题