【问题标题】:How can I make ExpandableListView not selectable?如何使 ExpandableListView 不可选?
【发布时间】:2014-03-11 21:21:58
【问题描述】:

我有一个可展开的列表视图,其中所有列表都已展开。我不希望用户能够选择任何父项(组项)。我已经做到了,因此单击它不会折叠列表,但无法弄清楚如何使该项目不可选择。

【问题讨论】:

标签: java android android-listview expandablelistview


【解决方案1】:

使用 isChildSelectable 方法使您所需的子项可点击。在您的子模型对象中保持 isChildSelectable 布尔状态。

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    return yourmodel.isChildSelectable;
}

【讨论】:

  • 这不会为组(父)项触发。只有孩子。所以它真的没有回答 OP 的问题(这也是我的问题)
  • @Nilzor 我的回答是“无法弄清楚如何使该项目无法选择。”
  • @Nilzor 通过使组单击侦听器null 并将android:clickable="false" 添加到 group_item 布局并在getGroupView 方法中扩展每个组,例如@Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { ((ExpandableListView) parent).expandGroup(groupPosition); .... return convertView; } 将解决您的问题我认为
【解决方案2】:

如果有人想知道,这就是我解决它的方法:

我将这两行添加到我的 ExpandableListView xml 中。

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

【讨论】:

    【解决方案3】:

    我不知道您已经尝试过什么,但禁用整个列表应该会导致无法选择某些内容。

    【讨论】:

    • 禁用整个列表是什么意思?
    • 我的意思是在 ExpandableListView 上调用 setEnabled()。每个班级的解释各不相同,但不应再对点击做出反应
    【解决方案4】:

    您可以在返回适配器的 getGroupView() 中的视图之前将标题设置为不可点击:view.setClickable(true);view.setFocusable(false);,具体取决于您想要什么。

    编辑:将 setClickable(false) 更改为 setClickable(true)。使视图可点击意味着您无法单击列表选择器后面的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 2018-10-10
      相关资源
      最近更新 更多