我在应用程序中使用RecyclerView
,出于设计的需要,我需要在列表中的项之间设置不同的页边距(例如:前两项之间的间距为16dp,第二项和第三项之间的间距为32dp等)。我读到您可以向RecyclerView
添加项目装饰,并在项目之间创建该空间。但是这个东西在所有项目之间添加了相同的边距,并且我希望不同的项目具有不同的行为。我的问题是,这可以使用项目装饰来完成吗?这种方法比更改RecyclerView.Adapter
中的onBindViewHolder
方法中的项(视图)的边距更好吗?提前谢谢你!
发布于 2014-12-09 17:12:02
您可以覆盖RecyclerView.ItemDecoration#getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state)
,它是为每个可见的子View view
调用的,您可以通过调用以下命令来获取其在适配器中的位置:
parent.getChildAdapterPosition(view)
或视图控制符调用以下命令:
parent.getChildViewHolder(view)
https://stackoverflow.com/questions/27379873
复制相似问题