标题
4.1.4 取消ListView的Item点击效果
android:listSelector="#00000000"
4.1.5 设置ListView需要显示在第几项
瞬间的滑动到第几项
listview.setSelection(N);
自然的滑动到第几项
listview.smoothScrollBy(distance,duration);
listview.smoothScrollByOffset(offset);
listview.smoothScrollToPosition(index);
4.1.6 动态修改ListView
4.1.9 ListView滑动监听
未来更精确地监听滑动事件,开发者通常需要使用GestureDetector手势识别、VelocityTracker滑动速度检测等辅助完成更好的监听。此处介绍两种ListView滑动事件的监听方法:1,OnTouchListener; 2,OnScrollListener。
OnScrollListener是AbsListView中的监听事件。
onScrollStateChanged()方法,当用户没有做手指抛动的状态时,这个方法只会回调2次,否则回调3次,差别在手指抛动的这个状态。常在此方法中通过不同状态设置一些标志Flag,来区分不同的滑动状态,供其他方法处理。
onScroll参数中当前能看见的item数,包括没有显示完整的item。
4.2.1具有弹性的
主要是使用ListView中一个控制滑动到边缘的处理方法:overScrollBy();
4.2.2自动显示、隐藏布局的ListView
思路:通过监听ListView的滑动,通过判定滑动方向,判断是需要显示或隐藏对应布局。
注意:1,添加HeaderView,避免第一个Item被Toolbar遮挡。2,获取ActionBar的高度,
getResources().getDimension(android.support.v7.appcompat.R.dimen.abc_action_bar_default_height_material))
3,定义 myTouchSlop变量获取系统认为的最低滑动距离(超过此距离,系统将其定义为滑动状态了)
mTouchSlop = ViewConfiguration.get(this).getScaledTouchSlop();
PS: 使用ActionBar,theme一定是要NoActionBar的,不然会引起冲突。并且要引入编译库:compile 'com.android.support:appcompat-v7:21.0.3'
4.2.3 聊天ListView
getItemViewType(int position)用来返回 position个item是何种类型,而getViewTypeCount()方法返回不同布局的总数。(例如:聊天的为2)。
4.2.4 动态改变ListView布局
此效果有两种方法:1, 这两种布局写一起,通过控制显示、隐藏来实现切换效果;2,在getView()时,通过判断选择加载不同布局。