先对开发过程常用到但常常令开发者拍桌子砸凳子的功能作一个概述:
1.点哪个item,就让其跑到listview的顶部
我也是无意中发现,在onItemClick()中加上这一句就能实现:
listView.setSelection(position);
说明:listView是从布局文件中获得的,position就是默认的变量,大家都懂
setSelection(int position)
Sets the currently selected item.
具体的可以参考android官方文档 http://developer.android.com/reference/android/widget/ListView.html#smoothScrollByOffset
2.实现点击item 显示隐藏一个控件的功能时,点击item后,再点击相同的item发现,就算泪奔也没有反应
经疯狂的查了一天的资料,终于找到靠谱的答案:这主要是因为点击item后,该item就失去了焦点,只要在listview相应的xml文件根上加上这一句就万事大吉了:
android:descendantFocusability="blocksDescendants"
说明:
该属性是当一个view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
核心问题解决!