今天看了“鸿祥_”大神的写的“ListView滑动删除,仿腾讯QQ” 。大神果然是大神,第一篇文章,我就看不懂,好多知识需要学习。
1. 文中的一个声明:private LayoutInflater mInflater;
什么是LayoutInflater?
答:主要参考了这篇文章
Android LayoutInflater详解
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。
具体作用:
1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;
2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。
2.文中的一个方法:
touchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
touchSlop是指用户滑动的最小距离
touchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); //是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件。
3.文中的一个实例化:
- mPopupWindow = new PopupWindow(view,
- LinearLayout.LayoutParams.WRAP_CONTENT,
- LinearLayout.LayoutParams.WRAP_CONTENT);
关于PopupWindow的说明:
Android的对话框有两种:PopupWindow和AlertDialog。它们的不同点在于:AlertDialog的位置固定,而PopupWindow的位置可以随意。
PopupWindow的一种构造方法:public PopupWindow(View contentView, int width, int height)
其中,contentView为要显示的view,width和height为宽和高,值为像素值。
4.获取mPopupWindow的宽和高
需要先调用以下measure,然后再获取。不管程序看起来很怪,不利于理解。
- /**
- * 先调用下measure,否则拿不到宽和高
- */
- mPopupWindow.getContentView().measure(0, 0);
- mPopupWindowHeight = mPopupWindow.getContentView().getMeasuredHeight();
- mPopupWindowWidth = mPopupWindow.getContentView().getMeasuredWidth();
OK,先学这么,我得消化消化。