android listview 开发经验

先对开发过程常用到但常常令开发者拍桌子砸凳子的功能作一个概述:

1.点哪个item,就让其跑到listview的顶部

我也是无意中发现,在onItemClick()中加上这一句就能实现:

listView.setSelection(position);

说明:listView是从布局文件中获得的,position就是默认的变量,大家都懂

setSelection(int position)

Sets the currently selected item.

2.实现点击item 显示隐藏一个控件的功能时,点击item后,再点击相同的item发现,就算泪奔也没有反应

经疯狂的查了一天的资料,终于找到靠谱的答案:这主要是因为点击item后,该item就失去了焦点,只要在listview相应的xml文件根上加上这一句就万事大吉了:

android:descendantFocusability="blocksDescendants"

说明:

该属性是当一个view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

        beforeDescendants:viewgroup会优先其子类控件而获取到焦点

        afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

        blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

 核心问题解决!

原文地址:https://www.cnblogs.com/goldeneast/p/3305513.html