2012-01-12 66 views
1

我有一个列表视图,每个项目有一个可点击的文本视图,当我点击文本视图,然后将其更改为两个按钮,如果我点击在textview之外,我需要整个项目可以响应点击事件。listview item with clickable subview sometime can not pass the click event to the item's subview

我还有一个工作线程从互联网上得到东西,然后更新列表视图。 当一个工作线程通知列表视图的适配器notifydatasetchange,同时,我点击列表项中的textview,但奇怪的事情发生,我点击textview,但整个项目响应点击。

我知道这是由listview的回收机制造成的。 在正常情况下,当notifydatasetchanged发生变化时,listview会放弃之前发布的事件。但有时它不会放弃。但我想知道是否有一些workround以避免这种情况?我希望listview的项目可以放弃在notifydatasetchange之前发布的事件。

+0

你能改善你的问题吗?使其更清楚。谢谢 – 2014-06-18 15:53:35

回答

4
<RelativeLayout 
    … 
    android:descendantFocusability="blocksDescendants" 
> 

    <Button 
     … 
     android:focusable="false" 
    /> 

</RelativeLayout> 
+0

即使'listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL)'_does_也可以使用这种方法。非常感谢! – sulai 2013-04-24 13:36:28

相关问题