多种Item布局的ListView的实现方法
16lz
2021-01-26
[Quik Start]
- 继承BaseAdapter, 具体实现请参考\android\widget\SimpleAdapter.java
- 重载public View getView(int position, View convertView, ViewGroup parent), 并在该函数里通过接口来加载不同Item的布局(单一布局的情况下, 到这里就已经可以完成功能了...)
- 重载BaseAdapter中的public int getViewTypeCount() &public int getItemViewType(int position) 两个函数. 其中, 前者是用来告诉ListView有多少种Item布局, 而后者是用来告诉ListView应该根据位于position的元素返回第n(0,1,...N-1)种布局, 而ListView则根据该值来判断在调用getView时应该传入已缓存的convertView.
[Example]
/** * 现以2种布局为例, 另外,代码要根据自身需求做响应修改 */public class ExampleAdapter extends BaseAdapter { private LayoutInflater mInflater; ... ... @Override public View getView(int position, View convertView, ViewGroup parent) { View v; if (convertView == null) { // 根据position元素生成item布局 int resource = ? [R.layout.item1 | R.layout.item2]; v = mInflater.inflate(resource, parent, false); } else { v = convertView; } } @Override public int getItemViewType(int position) { // 根据position元素返回View的类型, type值是从0开始排序的 int type = ? [0 | 1]; return type; } @Override public int getViewTypeCount() { return 2; }}
[Learn More]
- ListView的缓存机制的讲解
- ListView & Adapter 基础
- View 与 Tag 的关系
更多相关文章
- 安卓的简单笔记
- Andorid常用布局和常用属性介绍
- Android(安卓)L Settings实现
- Android(安卓)DataBinding使用总结(一)
- Android项目结构和HelloWorld
- Android(安卓)-- ListView与Adapter
- Android(安卓)Fragment 基本了解
- android 面试(一)
- Android圆形图片控件RoundedImageView