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);
     }
  • 相关阅读:
    dup/dup2函数
    read/write函数
    lseek函数
    流程控制
    vim普通模式
    vim实用技巧1
    python源代码解读
    python变量命名规则
    python之字符串2
    Docker系列文章
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9051255.html
Copyright © 2011-2022 走看看