java 片段将重用以前膨胀的根视图,这可以节省内存。好可怜 ......

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 片段将重用以前膨胀的根视图,这可以节省内存。好可怜 ......相关的知识,希望对你有一定的参考价值。

public class PoolFragment extends Fragment {
    private boolean isFirstIn = true;
    private View rootView;
    

    @Override
    public void onCreate(Bundle savedInstanceState) {
        preInitData();  
    }
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // 解决 Fragment 多次调用 onCreateView 问题
        if (rootView != null) {
            ViewGroup parent = (ViewGroup) rootView.getParent();
            if (parent != null) {
                parent.removeView(rootView);
            }
        } else {
            rootView = inflater.inflate(R.layout.fragment, container, false);
            initChildView(rootView);
        }
        
        if (isFirstIn) {
            isFirstIn = false;
            
            // load data here
            loadData();
        }
        
        return rootView;
    }
        
}

以上是关于java 片段将重用以前膨胀的根视图,这可以节省内存。好可怜 ......的主要内容,如果未能解决你的问题,请参考以下文章

避免将 null 作为视图根传递(需要在膨胀布局的根元素上解析布局参数)

如何在另一个片段内膨胀另一个布局

片段上的 Mapbox 膨胀视图

在我的“设置”片段中膨胀类 PreferenceScreen 时出错

片段对话框中的片段膨胀引发错误“片段未创建视图”

android片段中的视图重用