【问题标题】:Listview itemclick not workListview itemclick 不起作用
【发布时间】:2013-12-11 01:51:01
【问题描述】:
  1. 我的 ListView 中有一个 ListView 显示 ImageButton。

  2. 我将 focusalble "false" 和 focusableInTouchMode "false" 设置为 ImageButton。

  3. 我设置了 ListView.OnItemClickListner。当我运行我的项目时,它会显示我的 ListView。

  4. 但是当我点击 Listview 时它不起作用。

  5. 然后我在布局中删除 ImageButton 并在单击 ListView 时再次运行我的项目它工作

  6. 怎么了?

【问题讨论】:

  • 如果没有代码来说明您的问题,我们如何为您提供帮助...
  • 将图像按钮设置为 onclickable false、onfocusable false 并且还可以在触摸时聚焦为 false.. 同样在适配器中设置此属性。如果您需要实现单击图像按钮,请在适配器类中执行。

标签: android listview


【解决方案1】:
android:focusable="false"
android:focusableInTouchMode="false"

不适用于 ImageButton。

在您的布局 xml 中,将此属性添加到根布局

android:descendantFocusability="blocksDescendants" 

它非常适合具有 ImageButton 的列表视图。

【讨论】:

  • 啊……我一直忘记这个标签。又浪费了一个小时。我希望我可以多次投票。
  • 一年后仍然相关!
  • 我也有同样的问题。但我有 WebView 而不是 ImageButton。我使用了 android:descendantFocusability="blocksDescendants"。机器人不工作。如果有人遇到此问题,请帮助我。
【解决方案2】:

您不是唯一的受害者 :) 这种行为通常被 Android 开发人员视为错误看看他们的谈话中的 link

要解决您的问题 - 只需在根布局中包含 android:descendantFocusability="blocksDescendants" 属性即可。

【讨论】:

    【解决方案3】:

    如果您使用自定义Listview,并且在自定义Listview 行项目列表中只有TextviewImageview,则应删除android:inputType=""。这会导致焦点问题。

    【讨论】:

    • 这对我有用,我已将 EDITTEXT 转换为 TEXTVIEW,因此它就在那里
    【解决方案4】:

    其实并没有错。你在做什么是好的。但我认为您在这里忘记了一个关键因素 ImageButton 有它自己的 OnClickListener。因此,当您将 ImageButton 嵌入到列表视图行时 ListView.OnItemClickListner 不起作用,因为 ImageButton 调用了单击/触摸,这是因为 ListView 没有获得您的单击/触摸事件。 查看此链接:How to fire onListItemClick in Listactivity with buttons in list?

    【讨论】:

      【解决方案5】:

      我猜你正在使用自定义列表视图项目只是尝试设置 为您的custom_list_view_item.xml 中的所有视图设置focusable "false" 和focusableInTouchMode "false" 如果您在适配器中对图像按钮使用单击侦听器,请不要担心您的图像按钮,它也可以正常工作。只需对 custom_list_view_item.xml 中的所有视图执行 focusable "false" 和 focusableInTouchMode "false"

      【讨论】:

        【解决方案6】:

        可能你已经为适配器类中的图像按钮编写了 onclick 监听器

        示例:

        imageButton.setOnClickListener(new OnClickListener() 
                {
                    @Override
                    public void onClick(View v) {
        
        
                    }
                });
        

        如果您为 listItem 设置 onclick 监听器。它将自动消耗操作输入 所以列表项可能不会被点击。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多