zoukankan      html  css  js  c++  java
  • Android RecyclerView使用GridLayoutManager导致间隙变大的问题

    我用recyclerView的时候设置LayoutManager为Grid,添加decoration为Grid,作为二级列表时,多次点击一级列表来跳转的时候,两张图之间的间隙在逐渐变大,后来发现是因为多次初始化Adaper的缘故。 
    中间的间隙会变大

    mWaresAdapter = new WaresAdapter(getContext(), datas);
    mRecyclerViewWares.setAdapter(mWaresAdapter);
    mRecyclerViewWares.setLayoutManager(new GridLayoutManager(getContext(), 2));
    mRecyclerViewWares.addItemDecoration(new DividerGridItemDecoration(getContext()));

    这是有bug的代码,每次都创建adapter导致间隙变大

    解决办法

    if(mWaresAdapter == null) {
      mWaresAdapter = new WaresAdapter(getContext(), datas);  
      mRecyclerViewWares.setAdapter(mWaresAdapter)
      mRecyclerViewWares.setLayoutManager(new GridLayoutManager(getContext(), 2)); 
      mRecyclerViewWares.addItemDecoration(new DividerGridItemDecoration(getContext()));
     }else{
       mWaresAdapter.clearData();
       mWaresAdapter.addData(datas);
     }
  • 相关阅读:
    计算图像数据集RGB各通道的均值和方差
    多个数组的排列组合
    n个数中选取m个数,并全排列
    设计模式——代理模式
    简易的工厂模式
    多态
    final关键字特点
    this和super的区别
    重载与重写的区别
    Linux下安装MongoDB
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9051255.html
Copyright © 2011-2022 走看看