【发布时间】:2015-02-07 09:36:00
【问题描述】:
我在我的应用程序中使用RecyclerView 并且为了我的设计需要,我需要在我的列表中的项目之间有不同的边距(例如:前两个项目之间的间距为 16dp,间距在第二项和第三项之间 32dp 等)。我读到您可以将项目装饰添加到 RecyclerView 并在项目之间创建该空间。但是这个东西在所有项目之间增加了相同的边距,我希望不同项目有不同的行为。我的问题是,这可以使用物品装饰来完成吗?这种方法比更改项目(视图)的边距如何更好,例如RecyclerView.Adapter 中的onBindViewHolder 方法。提前谢谢!
【问题讨论】:
-
您是否尝试覆盖 ItemDecoration.getItemOffsets?
-
是的,但是如何为不同的项目添加不同的边距?我应该以某种方式迭代这些项目吗?
-
是调用一次还是多次?如果后者看到传递的参数
-
多次调用,参数为(Rect outRect, View view, RecyclerView parent, RecyclerView.State state)..
-
所以您在每次通话中都有不同的视图视图,对吧?那么究竟是什么问题呢?
标签: android margins android-recyclerview