在 iOS 中,UITableView
可以有“部分”并在部分“行”内。这在 Android 中是否可以通过 RecycleView
实现?
RecyclerView.Adapter
只有一个 getItemCount()
委托(delegate)方法。但部分没有。您可以建议哪些替代方案?
我想将节标题排成一行,并将这些节合并为一个全局节,这样就不需要任何节了。有更好的主意吗?
最佳答案
RecyclerView.Adapter 支持多种开箱即用的 View 类型。您想在任何特定位置显示哪种项目类型取决于您。您可以轻松地使用它来创建部分,例如,如果您定义两个项目类型 TYPE_HEADER 和 TYPE_ITEM:
@Override
public int getItemViewType(int position) {
if (isHeader(position)) {
return TYPE_HEADER;
} else {
return TYPE_ITEM;
}
}
然后,您可以使用 onCreateViewHolder
来扩充适当的布局,并使用 onBindViewHolder
来利用它。
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_HEADER) {
View v = ... ; // inflate here
return new HeaderViewHolder(v);
} else {
View v = ... ; // inflate here
return new ItemViewHolder(v);
}
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (holder instanceof HeaderViewHolder) {
// handle header
} else if (holder instanceof ItemViewHolder {
// handle item
}
}
剩下的唯一的事情就是保存东西的数据结构。有很多方法可以实现它,我认为这有点超出了您的问题范围。如果数据结构非常深,我更喜欢使用我不久前制作的自定义树状结构,但有时我使用平面 List
并使用 instanceof
检查项目类型。
关于android - 可以在 Android 的 RecyclerView 中定义部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39227570/