标签:listview
今天继续学习“鸿祥_”大神的写的“ListView滑动删除,仿腾讯QQ” 。
今天,我准备学习并理清QQListView的逻辑。
1.自定义ListView
先看看布局文件activity_main.xml:
-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-
xmlns:tools="http://schemas.android.com/tools"
-
android:layout_width="match_parent"
-
android:layout_height="match_parent" >
-
-
<com.example.listviewitemslidedeletebtnshow.QQListView
-
android:id="@+id/id_listview"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content" >
-
</com.example.listviewitemslidedeletebtnshow.QQListView>
-
-
</RelativeLayout>
这里采用了自定义的ListView,也就是QQListView。具体如何体现自定义ListView的优势需要在com.example.listviewitemslidedeletebtnshow.QQListView类中实现(这里主要是为了实现滑动删除)。
然后,我们将视线转到com.example.listviewitemslidedeletebtnshow.QQListView类中
-
public class QQListView extends ListView
-
{
-
//首先,定义一些属性
-
//然后,定义构造函数,用PopupWindow显示“删除”按钮,并获得PopupWindow的宽高;
-
//然后,覆写dispatchTouchEvent和onTouchEvent方法;
-
//然后,再写一些需要用到的方法;
-
}
2.dispatchTouchEvent和onTouchEvent究竟做了什么工作
这部分是进行了非常关键的操作(我理解了其中操作的实现,还不是非常理解在操作时是否有冲突)。
2.1
dispatchTouchEvent的功能
通过dispatchTouchEvent判断是否存在“从右到左的滑动”事件,并根据触摸点确定所在Item,然后获得Item所在View;
2.2 onTouchEvent的功能
对滑动事件进行处理,根据Touch处View的坐标确定mPopupWindow的显示位置,并以动画的形式进行显示。
3.其它
在这篇博文中还有很多值的学习的地方,比如接口的使用等等。我先把上面的这些消化后,再深入分析吧。
【学习笔记】"ListView滑动删除 ,仿腾讯QQ"(三)
标签:listview
原文地址:http://blog.csdn.net/chjr1000/article/details/44001113