Fragment如何避免onCreateView重复调用

来源:互联网 发布:淘宝网返利如何领取 编辑:程序博客网 时间:2024/04/27 17:34
在做一个使用Fragment的项目中,遇到在滑动Fragment的过程中不断重复调用onCreateView的问题,导致控件不断初始化,影响程序的整体逻辑。于是便使用Log打印了所有可重写的父类方法。结果如下,这个过程有助于进一步熟悉Fragment的生命周期。

1.程序启动后
滑动到本界面或是相邻界面便开始打印如下信息:
这里写图片描述
2.滑动到相隔一个界面后
打印信息如下:
这里写图片描述
3.继续滑动到相邻界面
打印信息如下:
这里写图片描述
可以看出只有onAtattach和onCreate方法只调用了一次,但是控件的初始话大都是在onCreateView中完成了,于是便想到了ListView中避免重复初始化的方法。

**解决方法:

private View v;@Nullable    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        if (null != v){            ViewGroup parent = (ViewGroup) v.getParent();            if (null != parent) {                parent.removeView(v);            }        }else {            v = inflater.inflate(R.layout.main_tab_clock,container,false);            /**            * 控件的初始化            */        }       return v;
0 0
原创粉丝点击