Android-listview的item布局中imagebutton问题
在listview的item中用imagebutton导致列表不可点击,imagebutton可点击,然后把imagebutton换成imageview后列表就可以点击了,这是什么问题?怎样实现能使listview列表可点而且imagebutton也可点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
确实是imagebutton把事件捕获了
解决方法有好几个
1.该imagebutton的focusable设置为false
2.在这个list的根属性里面设置descendantFocusability属性为blocksDescendants
是因为点击事件被imageButton捕获了,所以item就接收不了
(1)主要是ViewGroup如何吃input event的问题。
(2)你可以为整个listItem去实现public boolean dispatchTouchEvent (MotionEvent ev)方法,也可以为item里面的组件分别去实现abstract boolean onTouch(View v, MotionEvent event)的方法。关键在于你要根据自己需要的逻辑去处理onTouch的返回值:“True if the listener has consumed the event, false otherwise.”
(3)如果你想要ImageButton获得响应就应该让它的父层(即LinearLayout)返回false,不过Android的默认是返回flase的,所有你才会看到ImageButton获取了事件而Item无法获取。同理,那么如果反过来,你应该知道怎么处理吧。
(4)另外需要介绍一个属性:duplicateParentState(When this attribute is set to true, the view gets its drawable state (focused, pressed, etc.) from its direct parent rather than from itself.)
(5)所以综合上面的知识点,根据你的需要,处理下之间的逻辑应该就好了,希望对你有帮助。