【问题标题】:How to make an item in a list view non clickable in Android如何在Android中使列表视图中的项目不可点击
【发布时间】:2011-09-12 15:06:59
【问题描述】:

如何使列表视图中的项目无法点击。我在列表视图中有主题和项目,但主题和项目的视图是相同的。项目可点击,但主题不可点击。如何做到这一点

列表看起来像

Topic
item
Topic
item
item

主题。 clickable(false) 无效,请帮忙

【问题讨论】:

  • 您尝试过可扩展的列表视图吗??

标签: android listview


【解决方案1】:

不知道你是否还需要它,但是你可以实现自己的Adapter并重写方法isEnabled(int position)。根据项目的 ViewType,您将返回 true 或 false。

【讨论】:

  • 通过覆盖方法启用无效,因为该方法从未被调用
  • @AlikElzin-kilaka 你能解释一下什么不起作用吗?对我来说它工作得很好,我认为这是最优雅的解决方案。
  • 此方法防止分隔线显示在我的列表项之间。相反,我在 ListView android:listSelector="@android:color/transparent" 的 XML 中设置了以下属性,它对我有用。
【解决方案2】:

分享我的经验,以下是诀窍(视图指的是列表项视图):

view.setEnabled(false);
view.setOnClickListener(null);
  • 通过覆盖方法启用无效,因为从未调用过该方法。
  • 将 focusable 设置为 false 也不起作用。

【讨论】:

  • 我的解决方案的问题是重新启用点击。如果您取消了单击侦听器,则您不知道 ListView 以前使用的侦听器是什么。如果您想重新启用单击/选择选项,请参阅 isEnabled 解决方案:developer.android.com/reference/android/widget/…
  • 我的在 'setOnClickListener' 上崩溃了
【解决方案3】:

要使列表中的项目不可点击,您必须使适配器在其isEnabled 方法上为列表中的项目返回 false。实例化适配器和覆盖isEnabled 的简单方法可以通过以下方式完成:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null, from, to, 0) {
    @Override
    public boolean isEnabled(int position) {
        return false;
    }
};

【讨论】:

  • 此方法防止分隔线显示在我的列表项之间。相反,我在 ListView android:listSelector="@android:color/transparent" 的 XML 中设置了以下属性,它对我有用。
【解决方案4】:

这是正确答案:

我发现很多cmets都这么说

setEnabled(false)
setClickable(false)
setFocusable(false)

可行,但答案是

这种方法的唯一解决方法是:

view = inflater.inflate(R.layout.row_storage_divider, parent, false);
view.setOnClickListener(null);

【讨论】:

    【解决方案5】:

    在ListView中设置listSelector透明

    android:listSelector="@android:color/transparent"
    

    【讨论】:

      【解决方案6】:

      在你的适配器中,你可以这样写:

      view = inflator.inflate(R.layout.items_menu_header, null);    
      view.setOnClickListener(null);
      

      我使用布尔值来识别是标题还是项目,因此我为每种类型分配了不同的布局。

      【讨论】:

        【解决方案7】:

        在您的ListView 中添加以下属性

        android:cacheColorHint = "#00000000"
        

        【讨论】:

          猜你喜欢
          • 2012-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-15
          • 1970-01-01
          相关资源
          最近更新 更多