Android。列表显示。单击 ListView 的视图中的子项禁用父 OnClickListener
Android. ListView. Click on child item in View of ListView disables parent OnClickListener
好的,现在更详细的描述。
我有带适配器的 ListView
元素(扩展 BaseAdapter
)。
我在 ListView
中有 10 多个视图元素。 Adater 按预期运行,onItemClickListener
也运行良好。
但是当我在 getView
函数中的内部适配器中为 ListView
创建视图元素时,我在其中添加 TextView
并为此元素设置 onClickListener
。
使用 Toast 消息进行测试显示 TextView
onClickListener
正在运行。但是 ListView
的父 Listener 不再存在了。
有什么问题吗?我理解整个概念,但是如何要求 android 在 TextView
之后不要停止处理点击事件并且还要处理 ListView
点击事件。
我试过了
- view.performClick();
- view.callOnClick();
- view.getRootView.performClick();
- view.getRootView.callOnClick();
运气不好
我认为您将点击侦听器与整个项目的视图组绑定的方式不正确。您需要调用 addView(textview) 然后您只能启动 textview 点击侦听器。另外,如果您是新手,请改用 recylcerview。
问题已解决。
尝试调用
view.performClick();
是错误的正确答案是
假设我们在适配器
((ListView)parent).performItemClick(view, position, position)
好的,现在更详细的描述。
我有带适配器的 ListView
元素(扩展 BaseAdapter
)。
我在 ListView
中有 10 多个视图元素。 Adater 按预期运行,onItemClickListener
也运行良好。
但是当我在 getView
函数中的内部适配器中为 ListView
创建视图元素时,我在其中添加 TextView
并为此元素设置 onClickListener
。
使用 Toast 消息进行测试显示 TextView
onClickListener
正在运行。但是 ListView
的父 Listener 不再存在了。
有什么问题吗?我理解整个概念,但是如何要求 android 在 TextView
之后不要停止处理点击事件并且还要处理 ListView
点击事件。
我试过了
- view.performClick();
- view.callOnClick();
- view.getRootView.performClick();
- view.getRootView.callOnClick();
运气不好
我认为您将点击侦听器与整个项目的视图组绑定的方式不正确。您需要调用 addView(textview) 然后您只能启动 textview 点击侦听器。另外,如果您是新手,请改用 recylcerview。
问题已解决。
尝试调用
view.performClick();
是错误的正确答案是
假设我们在适配器
((ListView)parent).performItemClick(view, position, position)