我到处都在寻找解决方案,但是我不知道如何实现它。我的行OnItemClickListener被禁用了ListView,因为我ImageButton在行布局中接管了焦点。我发现了很多问题,但是没有一个让我到任何地方。我已经检查了这个问题,但我实在无法做到。我只需要一种使行可点击的方法,这样我就可以检测到何时按下了行。长按和聚焦效果很好。
3 回答
有只小跳蛙
TA贡献1824条经验 获得超8个赞
设置您ImageButton的属性:
android:focusable="false"
因为AbsListView.onTouchEvent检查child.hasFocusable()。
慕桂英3389331
TA贡献2036条经验 获得超8个赞
我已经在SDK级别8和16上测试了以下解决方案。
在 getView()
setFocusable(false);
setClickable(false);
而不是在Adapter's中将它们设置为true会getView()执行我认为原始问题想要的事情,并且意味着OnItemClickListener只要OnClickListener未在中设置an,就会调用an getView()。
我假设任何事情,你可以做一个查看的OnClickListener,你可以在做很容易ListView的OnItemClickListener。(setOnClickListener在View上隐式地将视图设置为可点击的,这显然防止了ListView的相应视图被OnItemClickListener调用。)
ImageButton就按下或翻转项目时的视觉状态而言,行为是人们所期望的。
解决方案是一个小小的错觉,因为列表项被按下的不是其ImageButton本身,因此,如果按钮没有占据整个列表项,则单击该项目的其他位置仍将使按钮的可绘制状态反映该单击。焦点相同。那可能是值得付出的代价。
添加回答
举报
0/150
提交
取消