【问题标题】:How to disable elements in expandablelistview?如何禁用可扩展列表视图中的元素?
【发布时间】:2017-03-16 09:31:16
【问题描述】:

我将ExpandableListView 与“groups”和“childs”元素一起使用。是否可以禁用扩展某些组元素?我需要更改适配器中的一些代码还是应该overrideonclick 方法?

【问题讨论】:

  • 您可以直接致电.setClickbale()查看
  • @ndeokar 谢谢你的回答。但我不想禁用所有组元素,但我想禁用其中一些
  • 从逻辑上讲,如果您禁用对组元素的点击,这意味着您不想显示子元素?如我错了请纠正我。您可以覆盖 onclick 然后按照您提到的限制。
  • @ndeokar 是的,我不想显示最后一组的子元素。我的问题的主要思想是我应该如何限制我提到的:覆盖 onclick 方法或在适配器中编写一些代码。你能展示一些示例代码吗?
  • 尝试在您的列表视图中使用setOnGroupClickListener 并检查您点击了哪个位置

标签: android expandablelistview


【解决方案1】:

在您的列表视图上使用setOnGroupClickListener 并在您想要禁用的位置返回true

这将禁用要消耗的第一个元素

expListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
        @Override
        public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
            if (i==0){
                return true;
            }
            return false;
        }
    });

【讨论】:

    【解决方案2】:

    在那些不会在点击时触发的组标题上调用 .setClickable(false)。 您的适配器接到电话到getGroupView。此方法返回显示为组标题的视图。 如果您不希望此视图可点击,请致电.setClickable(false)

        @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
    
        if (convertView == null) {
            LayoutInflater li = LayoutInflater.from(activity);
            convertView = li.inflate(<<your header item>>, null);
        }
    
         if (isLastGroup)
            convertView.setClickable(false);
    
        return convertView;
    }
    

    【讨论】:

    • 这不t work too, I compare groupPosition with my number 5 (I have 6 groups) and if result true`我设置了可点击(假)..
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 2011-07-07
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    相关资源
    最近更新 更多