2017-03-16 57 views
2

我正在使用ExpandableListView加上“groups”和“childs”元素。是否有可能禁用扩展一些组元素?我是否需要更改适配器中的某些代码,或者我应该使用overrideonclick方法吗?如何禁用expandablelistview中的elemts?

+0

你可以简单地在视图上调用'.setClickbale()' –

+0

@ndeokar谢谢你的回答。但是我并不想禁用所有组元素,但是如果您禁用了对组元素的点击意味着您不想显示子元素,我想在逻辑上禁用其中的一些 – MrStuff88

+0

?如我错了请纠正我。你可以重写onclick,然后像你提到的那样限制。 –

回答

1

您的ListView使用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; 
     } 
    }); 
+0

我试过这个,但它不起作用.. – MrStuff88

+0

抱歉,我的错误。它工作正常 – MrStuff88

1

对那些不会在点击时触发的组标题调用.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; 
} 
+0

这也不起作用,我将groupPosition与我的编号5(我有6个组)进行比较,如果结果为true,我设置为可点击(false)。 – MrStuff88

+0

这种方式也可以正常工作 – MrStuff88