首页 > 解决方案 > 如何仅在 RecyclerView 上的项目之间添加间距?

问题描述

正如标题所描述的,我只想要项目之间的间距。不在第一项之前或最后一项之后。onBindViewHolder我尝试在我的适配器的方法中从第一个和最后一个项目中以编程方式使用填充和删除填充。

if (position == 0)
    holder.itemView.setPadding(0, 0, holder.itemView.getPaddingRight(), 0);
else if (position == getItemCount() - 1)
    holder.itemView.setPadding(holder.itemView.getPaddingLeft(), 0, 0, 0);

但是当我添加或删除项目时,第一个和最后一个项目的位置可能会改变。由于它们没有重新绑定到视图,因此它们的填充保持不变。例如,我有一个这样的列表:1* *2* *3. 我删除 3:1* *2*并插入 4, 5: 1* *2* *4 *5*表示填充)。我希望我解释清楚。

我也尝试过ItemDecorations,但由于我使用的是动态列表,因此找不到删除最后一项装饰的动态方法。

标签: androidandroid-recyclerview

解决方案


您可以在适配器中执行此操作:

  if(position == 0 || position == numlist.size()-1){

       // I assume the list name is numlist

         holder.asterisk.setVisibility(View.GONE);

      // I assume the item name is asterisk                                          

  }

推荐阅读