android - Button设置了focusable="false",还怎么监听到事件?
黄舟
黄舟 2017-04-18 09:15:19
0
2
571

由于使用了onItemClickListener,存在Button的时候ListView不能监听到点击事件,所以对Button做了如下处理

    android:focusable="false"
    android:focusableInTouchMode="true"

对Button的父类容器做这样的处理

    android:descendantFocusability="blocksDescendants"

之前的ListView监听问题解决了
但是,不知道后续应该怎么做了,我想在button上也添加事件,但是我理解的状态是:目前不能添加事件了,我理解的对不对,请各位大神指教

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

Antworte allen(2)
小葫芦

不使用ListView提供的onItemClick事件。
在初始化ItemView的时候注册onClick事件。
然后再给Button注册onClick事件。

刘奇

你的理解不对.

ListViewItemView如果使用了任何focusable的View, 那么ItemView的点击事件就会被该类View给拦截了. 解决这个问题只需要给layout-xml中的RootView设置如下属性即可解决上述问题:

android:descendantFocusability="blocksDescendants"

如果还想给ItemViewChildView设置OnClickListener, 那就直接调用View.setOnClickListener(OnClickListener)就好了.

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage