android listView功能简介
本文参考连接:http://blog.csdn.net/kesenhoo/article/details/7196920
android中listView是非常常用的组建,下边就经常用到的功能做一下简单的介绍
1、adapter对应的getView方法:
此方法的作用:获取list item的每一项view,取到后返回进行显示。
问题: 当有很多数据需要显示时,创建view怎么办?
对此,Android提供了一套重复利用的机制叫做“Recycler”:
原理简单描述下就是这样:
在一个完整的ListView第一次出现时,每个Item都是Null的,getView的时候会执行到需要inflate一个Item的代码段,假设整个view只能最多显示10个item,那么 当滑动到第11个Item的时候,第一个item会放入“recycler“,如果第11个Item和放 入“Recycler”的item的view一致,那么就会使用"Recycler"里面的Item来显示, 从而不用再重复inflate一次,这样大大节省了创建View的工作,在需要显示大量数 据时显得尤为重要。
<pre name="code" class="java"><span style="font-size:24px;">@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate( R.layout.temp_layout, null); holder.mTextView = (TextView) convertView .findViewById(R.id.temp_layout_text); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } }</span>
2、listView滑动问题
<span style="font-size:24px;"> @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)</span>
参数介绍:
firstVisibleItem :第一个可见item所在的位置,滑动一个,增大一个值。
visibleItemCount:当前屏幕可见个数
totalItemCount:和view.getCount()是同样的值,代表当前view包含总数
如:
第一次初始化滑动数据如下:
滑动一次:
滑动第二次:
上边方法参数的了解,可以更好的开发滑动对应的一些功能
3、getItemViewType(int position)
ListView中如果item会用到不同的布局,就会通过这个方法来判断当前使用那个 组建,使用方法和getView一样