简体   繁体   English

保存片段状态方法

[英]Saving Fragment State methods

For saving fragment sate I think I came across two methods: 为了保存碎片状态,我想我遇到了两种方法:

  1. Using onSaveInstanceState. 使用onSaveInstanceState。
  2. Using Backstack to hide, add, and show the fragment. 使用Backstack隐藏,添加和显示片段。

I am unsure about whether these are two methods or both are required eg Is onSaveInstanceState specifically used to handle rotation change only or any one of them can be used? 我不确定这是否是两种方法,还是都需要,例如onSaveInstanceState是专门用于仅处理旋转更改还是可以使用其中任何一种?

You can save instance of fragment using onSaveInstanceState. 您可以使用onSaveInstanceState保存片段的实例。 No need of second method. 无需第二种方法。 However you want to recreate fragment on back preess then replace fragment instead of add fragment. 但是,您想在后台重新创建片段,然后替换片段而不是添加片段。 If you want to refresh Fragment then call on Resume method and get refreshed data by calling your method at on Resume 如果要刷新Fragment,请调用Resume方法,并通过在Resume上调用方法来获取刷新数据

@Override
    public void onBackStackChanged() {
        FragmentManager fragmentManager = getSupportFragmentManager();
        Fragment fr = fragmentManager.findFragmentById(R.id.content_frame);
        if (fr != null) {
            fr.onResume();
        }

    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM