我有一个非常复杂的ListView.每个项目看起来像这样:
> LinearLayout (vertical) > LinearLayout (horizontal) > include (horizontal LinearLayout with two TextViews) > include (ditto) > include (ditto) > TextView > HorizontalScrollView (this guy is my problem) > LinearLayout (horizontal)
在我的活动中,当一个项目被创建时(调用getView())我将动态TextViews添加到HorizontalScrollView内的LinearLayout(除了填充其他更简单的东西).令人惊讶的是,性能非常好.
我的问题是,当我添加HorizontalScrollView时,我的列表项变得无法点击.单击时它们不会获得橙色背景,并且它们不会触发我设置的OnItemClickedListener(进行简单的Log.d调用).
如何让我的列表项再次可点击?
编辑:在最顶层的LinearLayout上设置android:descendantFocusability =“blocksDescendants”似乎有效.我想知道是否还有其他方法:如果我想在我的列表项中使用可聚焦项目怎么办?
解决方法
在最顶层的LinearLayout上使用android:descendantFocusability =“blocksDescendants”就可以了.里面的元素仍然可以“点击”,它们只是不可聚焦(即你不能在非触摸屏设备上点击它们).对我来说足够好了.