Android 萌新日常bug解决

萌新如果有遇到以下bug可以尝试如下解放:

  • NestedScrollView嵌套RecyclerView时自动滚动一段距离,顶部显示不全

外层布局添加如下代码:

 android:focusable="true"//关键
 android:focusableInTouchMode="true"//关键
复制代码
  • NestedScrollView嵌套RecyclerView滑动冲突

RecyclerView添加如下代码:

android:nestedScrollingEnabled="false"
复制代码
  • viewpager+frgment 重置导航重新setAdapter 对应的frgment内容显示不对

setAdapter时调用下面方法: 这个方法大致意思就是清空Fragment缓存

 public void clearFrg() {
        if (vp.getAdapter() != null) {
            //获取FragmentManager实现类的class对象,这里指的就是FragmentManagerImpl
            Class<? extends FragmentManager> aClass = getChildFragmentManager().getClass();
            try {
                //1.获取其mAdded字段
                Field f = aClass.getDeclaredField("mAdded");
                f.setAccessible(true);
                //强转成ArrayList
                ArrayList<Fragment> list = (ArrayList) f.get(getChildFragmentManager());
                //清空缓存
                list.clear();

                //2.获取mActive字段
                f = aClass.getDeclaredField("mActive");
                f.setAccessible(true);
                //强转成SparseArray
                SparseArray<Fragment> array = (SparseArray) f.get(getChildFragmentManager());
                //清空缓存
                array.clear();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享