dev*_*oid 6 android listview layout-inflater baseadapter getview
我必须显示具有不同类型视图的列表。所以我必须定义一个带有适配器的 ListView,我必须在其中膨胀多个视图。我已经完成了给出的示例,但问题是我的列表不对称,就像在 4 个项目之后每次重复标题的示例一样。所以我面临着重用物品的问题getView()
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_1:
convertView = mInflater.inflate(R.layout.item1, null);
.......
break;
case TYPE_2:
convertView = mInflater.inflate(R.layout.item2, null);
.......
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
............
............
}
Run Code Online (Sandbox Code Playgroud)
现在,如果 convertView 不为空,但之前使用的项目类型不同,则布局将不匹配。这段代码将如何处理这个问题?
您可以通过重写方法来做到这getViewCount()一点getItemViewType(int position)
首先,您只需返回您拥有的不同视图的数量。
在第二个中,您为每个不同的视图返回一个唯一的标识符。
在您的getView()方法中,您检查视图类型并为其填充正确的布局。
有关该主题的更多信息:每行具有不同布局的 Android ListView
| 归档时间: |
|
| 查看次数: |
6973 次 |
| 最近记录: |