《Android 自己动手写ListView学习其原理 1 显示第一屏Item》
《Android 自己动手写ListView学习其原理 2 上下滚动》
本篇主要是添加ItemClick,ItemLongClick,View复用,都比较简单前两个点击事件是在onTouchEvent里面处理,View复用与onLayout先关的时候使用,代码里面注释比较完整,直接上代码把。
一、有图有真相
二、ItemClick 与 ItemLongClick
1. 启动LongClick子线程,在onTouchEvent Down事件时执行
/**
* 开启异步线程,条件允许时调用LongClickListener
*/
private void startLongPressCheck() {
// 创建子线程
if (mLongPressRunnable == null) {
mLongPressRunnable = new Runnable() {
@Override
public void run() {
if (mTouchMode == TOUCH_MODE_DOWN) {
final int index = getContainingChildIndex(
mTouchStartX, mTouchStartY);
if (index != INVALID_INDEX) {
longClickChild(index);
}
}
}
};
}
// ViewConfiguration.getLongPressTimeout() 获取系统配置的长按的时间间隔
// 如果点击已经超过长按要求时间,才开始执行此线程
postDelayed(mLongPressRunnable, ViewConfiguration.getLongPressTimeout());
}
/**
* 调用ItemLongClickListener提供点击位置等信息
*
* @param index Item索引值
*/
private void longClickChild(final int index) {
final View itemView = getChildAt(index);
final int position = mFirstItemPosition + index;
final long id = mAdapter.getItemId(position);
// 从父类获取绑定的OnItemLongClickLi