【问题标题】:Non-clickable Listview Item with Visible Divider带有可见分隔线的不可点击的 Listview 项目
【发布时间】:2012-05-18 18:27:43
【问题描述】:

我想禁止单击 Listview 项目。一种解决方案是覆盖areAllItemsEnabled() 以始终返回false,并覆盖isEnabled() 以针对特定位置返回false。但是,这会导致特定 Listview 项目周围的分隔线消失。一些人建议为areAllItemsEnabled() 返回true,为isEnabled() 返回false,但这对我不起作用。我对手动放置分隔线犹豫不决,因为我需要将父布局添加到项目 XML。

有没有办法将 Listview 项目设置为不可点击并仍然保留

【问题讨论】:

  • 将此行放入您的代码中 mList.setItemsCanFocus(false);
  • 我的 Listview 行中有需要关注的项目,听起来这会禁用它们。

标签: android listview user-interface adapter clickable


【解决方案1】:

解决方案与您被告知要做的完全相反。 您应该在 areAllItemsEnabled() 中返回 false 并删除您对 isEnabled() 的覆盖。 它对我来说非常有效,昨天我也在努力解决这个问题。

因为areAllItemsEnabled() == false,所有项目都将不可点击,但会出现分隔线。

【讨论】:

    【解决方案2】:

    我也有这个问题,但是覆盖这些适配器方法看起来很丑。然后一个帖子让我想到了一个想法,这个想法以前已经奏效了。对于不应点击的视图,只需调用 view.setOnClickListener(null)

    Boom,也许这是一种解决方法,而不是真正的解决方案,但它确实有效。我必须注意,我以编程方式将分隔符添加到 ListView 页脚,所以我引用了分隔符,我可以简单地将 OnClickListener 设置为 null

    【讨论】:

      【解决方案3】:

      在个人View 上,尝试将其设置为不可点击:view.setClickable(false)。如果这不起作用,请尝试view.setFocusable(false)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-19
        • 2012-06-06
        • 1970-01-01
        相关资源
        最近更新 更多