ListView多条目展示
来源:互联网 发布:mac备份 编辑:程序博客网 时间:2024/06/15 14:57
#多条目加载
1.什么是多条目加载
* listView中展示的条目样式不相同的时候
2.应用场景
* 例如,今日头条展示的页面,条目展示的形式不同
3.如何使用多条目加载
* 1.public int getItemViewType(int position) {//返回条目的类型
* 2.public int getViewTypeCount() {//返回条目类型的数量
1.什么是多条目加载
* listView中展示的条目样式不相同的时候
2.应用场景
* 例如,今日头条展示的页面,条目展示的形式不同
3.如何使用多条目加载
* 1.public int getItemViewType(int position) {//返回条目的类型
* 2.public int getViewTypeCount() {//返回条目类型的数量
* 3.不同的ViewHolder,在优化之前先判断当前条目要展示哪种数据类型,然后在进行优化和数据的设置
难点:
listView 多条目展示 的难点在于,如何通过getItemViewType(int position) 获取不同类型数据?
前期 定义几个常量,方便在getView() 方法中直接获取getItemViewType(int position) 的类型
- private static final int typeOne = 0;
方式
- 以最常见的新闻类app 来处理,在新闻类app的展示新闻内容中,有的是带图片的,有的没有图片的,有的个数有三个,有的个数有一个。。。这些都可以作为参考,只需要在该方法内添加判断条件,返回对应的常量即可;而这个判断条件的数据需从 传入的数据中获取。
- 例如 if (TextUtils.isEmpty(items.get(position).url)) {
return typeOne;
} else {
return typeTwo;
}
@Overridepublic int getItemViewType(int position) { if (TextUtils.isEmpty(items.get(position).url)) { return typeOne; } else { return typeTwo; }}@Overridepublic int getViewTypeCount() { return 2;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) { ViewHolder1 vh1 = null; ViewHolder2 vh2 = null; int type = getItemViewType(i); if (view == null) { switch (type) { case typeOne: vh1=new ViewHolder1(); view=View.inflate(context,R.layout.listview_item_nopic,null); vh1.vh1_name= (TextView) view.findViewById(R.id.item1_nickname); vh1.vh1_body= (TextView) view.findViewById(R.id.item1_body); view.setTag(vh1); break; case typeTwo: vh2=new ViewHolder2(); view=View.inflate(context,R.layout.listview_item_pic,null); vh2.vh2_name= (TextView) view.findViewById(R.id.item2_nickname); vh2.vh2_body= (TextView) view.findViewById(R.id.item2_body); vh2.iv= (ImageView) view.findViewById(R.id.item2_iv); view.setTag(vh2); break; default: break; } } switch (type) { case typeOne: vh1= (ViewHolder1) view.getTag(); vh1.vh1_name.setText(items.get(i).nickname); vh1.vh1_body.setText(items.get(i).body); break; case typeTwo: vh2= (ViewHolder2) view.getTag(); vh2.vh2_name.setText(items.get(i).nickname); vh2.vh2_body.setText(items.get(i).body); BitmapUtils bu=new BitmapUtils(context); bu.display(vh2.iv,"http://res.dxycdn.com/upload"+items.get(i).url); break; default: break; } return view; } class ViewHolder1 { TextView vh1_name, vh1_body; } class ViewHolder2 { TextView vh2_name, vh2_body; ImageView iv; }
阅读全文
0 0
- ListView多条目展示
- ListView多条目展示
- listview多条目展示
- listView 多条目展示
- ListView多条目展示
- listview多条目展示
- ListView多条目展示
- Listview(多条目展示)
- listview多条目展示
- ListView 多条目展示
- listview(多条目展示)
- ListView多条目展示
- ListView 多条目展示
- ListView多条目展示
- ListView的多条目展示
- listview的多条目展示
- ListView多条目的展示
- Listview 多条目展示_AsyncTask
- java实现得到文件属性中的修改时间
- 工作安排和版本控制
- 时代的变化——读《分布式服务框架 原理与实现》有感
- ubuntu安装docker
- jeesite 使用笔记(一)
- ListView多条目展示
- flume kafka spark streaming
- 多条目加载listView
- Adapter 多条目加载代码
- IE8 placeholder 无法显示问题
- vlc插件在FireFox火狐浏览器的使用
- Spring读书学习笔记(一)——Spring MVC
- volatile关键字的测试
- Hough变换的C实现