码迷,mamicode.com
首页 > 其他好文 > 详细

activity+fragment多次切换出现页面空白问题

时间:2015-11-26 01:05:44      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:

刚上手一个项目 懒的用viewpager+fragment模式,尽管在后面的项目中还是用到viewpager+fragment。先说说问题,多次切换fragment的时候页面出现空白,刚开始以为传递的参数有问题,但是也确实出现这个问题,手贱导致。

比如根据传入的tag实例化的时候,错把第一个数据和第二个传入相同的数据。copy的错,死活切换不了,后来debug才搞定:

/**
* 初始化 newInstance 管理fragment页面 同时设置当期fragment页面
*/
public static BaseFragment newInstance(Context context,String tag){
BaseFragment baseFragment = null;
if(TextUtils.equals(tag, context.getString(R.string.m))){
if(baseFragment==null)
baseFragment = new FragmentA();
}else if(TextUtils.equals(tag, context.getString(R.string.f))){
if(baseFragment==null)
baseFragment = new FragmentB();
}else if(TextUtils.equals(tag, context.getString(R.string.g))){
if(baseFragment==null)
baseFragment = new FragmentC();
}
return baseFragment;

}

=================================

后来问题表现在,第一个fragment加载数据缓慢 在未加载完全的时候切换其他页面的时候出现空白,在网上找了各种方法 刚开始以为缓存方面没做好(确实还没来得及做缓存那块的优化),后来看各种帖子,设置在清单文件设至signTask,  ...终于意识到fragment状态没保存。。。

只要在onCreateView中加一个判断就搞定了:

   @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                        Bundle savedInstanceState) {
                if (mView != null) {
                        ViewGroup parent = (ViewGroup) mView.getParent();
                        if (parent != null) {
                                parent.removeView(mView);
                        }
                        return mView;
                }
                View rootView = null;
                rootView = inflater.inflate(R.layout.question, container, false);
                mView = rootView;
                return rootView;
        }

activity+fragment多次切换出现页面空白问题

标签:

原文地址:http://www.cnblogs.com/yizuochengchi2012/p/4996278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!