美文网首页
tablayout+viewPager+fragment动态刷新

tablayout+viewPager+fragment动态刷新

作者: 在下陈小村 | 来源:发表于2018-09-07 15:31 被阅读83次

    这里一共碰到两个问题
    一个是adapter.notifyDataSetChanged()刷新没有效果。
    看了这篇文章解决的https://www.jianshu.com/p/266861496508
    核心就是

    /**
         * fragment适配器
         */
        private class MyPagerAdapter extends FragmentStatePagerAdapter {
    
            private final FragmentManager mFragmentManager;
    
            public MyPagerAdapter(FragmentManager fm) {
                super(fm);
                this.mFragmentManager = fm;
            }
    
            @Override
            public Fragment getItem(int position) {
                return fragments.get(position);
            }
    
            @Override
            public int getItemPosition(Object object) {//最主要就是加了这个方法。
                return POSITION_NONE;
            }
    
            @Override
            public int getCount() {
                return fragments.size();
            }
    
            @Override
            public CharSequence getPageTitle(int position) {
                return tabTitle.get(position);
            }
    
        }
    

    另一个问题就是反复滑动viewpager Fragment里面的recycleView容易崩溃。处理方式是给recycleView自定义一个LinearLayoutManager

    public class WrapContentLinearLayoutManager extends LinearLayoutManager {
        public WrapContentLinearLayoutManager(Context context) {
            super(context);
        }
    
        @Override
        public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
            try {
                super.onLayoutChildren(recycler, state);
            } catch (IndexOutOfBoundsException e) {
                Log.e("probe", "meet a IOOBE in RecyclerView");
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:tablayout+viewPager+fragment动态刷新

          本文链接:https://www.haomeiwen.com/subject/ivycgftx.html