fragment中editText在来回切换中具有记忆性

    xiaoxiao2021-03-26  29

    由于项目需要,Activity加载多个fragment,一次只加载一个,即需要的add,不需要的remove。

    遇到的问题,fragment在来回加载中发现已经加在过的fragment中的EditText具有记忆性展示原来的数据,导致特定的fragment中的EditText刷新不了数据。

    随后查了下:

    onViewStateRestored 告知fragment 其视图层次的所有保存的状态都已经恢复了

       当fragment已存在时,重新加载会执行onViewStateRestored把原有的控件数据重新赋值回来。

       从fragment的生命周期来看onViewStateRestored在OncreateView后面执行,所以onCreateView里面的Editext赋值被     onViewStateRestored中的赋值覆盖掉了。所以刷新不了EdiText。

    解决方法在onViewStateRestored方法中给EditText值

    @Override public void onViewStateRestored(@Nullable Bundle savedInstanceState) { //fragment中的editext有记忆功能 super.onViewStateRestored(savedInstanceState); initValue(); }
    转载请注明原文地址: https://ju.6miu.com/read-664086.html

    最新回复(0)