Android ListView中包含可点击项目的行会导致问题继续滚动

AmI*_*ord 5 android listview scroll onclick listadapter

我一直在网上寻找几个小时的答案,但我似乎找不到任何能够解决这个问题的人.

我有一个使用自定义适配器的listview.一行看起来像这样

替代文字

该列表由数组填充.一切都很好.

现在,我希望ImageView和ToggleButton对点击做出反应,所以我在我的适配器中实现了OnClickListener,将项目放在每个视图的标签中,然后我将它们的onclicklistener设置为此.

效果很好,除了现在我不能使用onListItemClick来启动项目的活动!好吧,我说,我只是让在中间保持文本的relativelayout使用相同的onclicklistener.效果很好.一切都是可点击的,生活是美好的.

除了!现在,当我滚动列表时,我无法通过再次投掷来"继续"滚动.这导致滚动停止,我不得不再次投掷以使其再次运行.似乎onclick-thingy导致fling-motion被解释为tap或某事(它不会触发onClick中的逻辑).

我知道这可以通过我的HTC Hero上的电话列表来实现,它具有我想要的应用程序中的布局和行为.这个应用程序甚至似乎有onItemClickListener工作.

那么如何确保列表保持滚动,仍然可以单击togglebutton,listitem和imageview?我整天都被困在这一天,这让我很头疼:(

AmI*_*ord 16

在我回家之前的另一个快速搜索,我发现了这个:

如何使用列表中的按钮触发Listactivity中的onListItemClick?

CodeFusionMobile提到将android:descendantFocusability列表布局的属性设置为"blocksDescendants",所以我尝试这样做.现在一切都按预期工作了.滚动工作,onListitemClicked工作,点击ToggleButton工作,点击ImageView工程.

只是为了说清楚......在父母的RelativeLayout右上方row.xml,我补充道

android:descendantFocusability="blocksDescendants"
Run Code Online (Sandbox Code Playgroud)