【发布时间】:2017-08-07 13:38:32
【问题描述】:
使用不同布局填充 Android ListView 的推荐方法似乎是覆盖
-
getItemViewType(int position), 和 -
getViewTypeCount()。
这里的许多问题和答案都清楚地表明了这一点(例如here、here 和here)。
但是,在查看具体的代码示例/教程时,我真的不明白为什么重写这些方法是正确的方法:
- 基本上,整个过程仍然归结为有某种 conditional/switch 语句 int
getView(...)根据给定位置的列表项膨胀正确的布局。 - 这个条件/开关似乎必须手动编写 - 那么,如果您仍然要简单地扩充手工挑选的布局,为什么还要费心重写上述方法呢?
主要问题是使用getItemViewType 签名会强制您首先将布局类型编码为int,然后(在getView(...) 中再次将此int 解码为任何布局类型...这增加了额外的复杂性和潜在的错误。
【问题讨论】:
标签: android android-layout listview