Set*_*ast 2 android android-recyclerview
我在网上找不到这个问题的答案,所以答案一定很简单,没有人愿意问,我就是不知道。
本质上,我想在我的 recyclerView 和 RecyclerView 底部的每个项目之间添加一条水平线。我找到了一种在 RecyclerView 中的每个项目之间放置分隔线的方法,但在最后没有。
根据文档(在这里找到:https : //developer.android.com/reference/android/support/v7/widget/RecyclerView.html#addItemDecoration ( android.support.v7.widget.RecyclerView.ItemDecoration , int) )
将负整数放入 addItemDecoration(RecyclerView.ItemDecoration decor, int index)。应该解决这个问题,说明:
如果此值为负,则装饰将添加到最后。
这是我的自定义 RecyclerView 的构造函数方法:
public CustomRecyclerView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
setHasFixedSize(true);
setLayoutManager(new LinearLayoutManager(context));
decor = new HorizontalDividerItemDecoration.Builder(context).build();
addItemDecoration(decor, -1);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我在 addItemDecoration() 中使用了一个负整数,但我无法弄清楚为什么它没有按预期方式工作。
任何帮助将不胜感激!
按照 Janice Kartika 的建议,我将代码复制并粘贴到我的项目中。在我复制粘贴 Janice 的代码后,Android Studio 给了我这个建议:
替换为 android.support.v7.widge.DividerItemDecoration?
旧版本的 RycyclerView 库不包含分隔符装饰器,但在支持演示中作为示例提供了一个分隔符装饰器。这个分隔符类已被广泛复制/粘贴到各种项目中。
在支持库的最新版本中,现在包含分隔符装饰器,因此您可以使用“内置”版本 android.support.v7.widget.DividerItemDecoration 替换自定义副本
因此,不要像这样使用 HorizontalDividerItemDecoration(它是我们导入的外部库的一部分):
decor = new HorizontalDividerItemDecoration.Builder(context).build();
addItemDecoration(decor, -1);
Run Code Online (Sandbox Code Playgroud)
我使用了默认的“DividerItemDecoration”,如下所示:
decor = new DividerItemDecoration(context, DividerItemDecoration.VERTICAL);
addItemDecoration(decor);
Run Code Online (Sandbox Code Playgroud)
它奏效了。事实证明,如果您不将“int index”放入 addItemDecoration,它将默认为 -1 并默认将装饰添加到底部。
| 归档时间: |
|
| 查看次数: |
15420 次 |
| 最近记录: |