2017-03-16 55 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