2016-01-28 77 views
0

我使用ExpandableListView在Activity中顯示父子關係。這工作正常,但因爲在我們的情況下,父母和孩子的信息是相似的,我希望能夠隱藏父母信息的情況下,每個父母只有一個孩子。ExpandableListView - 如果每個家長只有一個孩子,只顯示子元素

例如,在下面的屏幕截圖中,當前顯示的我的3產品每個都有一個孩子。因爲大部分有用的信息在部分(子)視圖上是足夠的,所以我想隱藏父母(產品)視圖。

所以,而不是顯示這個樣子時,每個產品都有唯一的1部分: enter image description here

,我想表明它是這樣的(無父視圖): enter image description here

這是可能的用ExpandableListView?

回答

1

這是一種詭異的方式,但是您可以檢查孩子數是否爲1,然後爲GroupView誇大空視圖。

我使用的是一個viewHolder模式,但一個適用於我的例子看起來像這樣。

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 
    ViewHolder viewHolder; 

    if(convertView == null){ 
     viewHolder = new ViewHolder(); 

     if(getChildrenCount(groupPosition) == 1) { 
      //INFLATE EMPTY VIEW 
      convertView = LayoutInflater.from(context).inflate(R.layout.empty_view, parent, false); 
     } else { 
      //THE ACTUAL VIEW 
      convertView = LayoutInflater.from(context).inflate(R.layout.actual_view, parent, false); 
      viewHolder.displayName = (TextView) convertView.findViewById(R.id.displayName); 
     } 

     convertView.setTag(viewHolder); 
    } else { 
     viewHolder = (ViewHolder) convertView.getTag(); 
    } 

    if(getChildrenCount(groupPosition) != 1) { 
     viewHolder.name.setText("Name"); 
     listView.expandGroup(groupPosition); 
    } 


    return convertView; 
} 

empty_view.xml看起來像這樣

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_height="0dp"> 

</LinearLayout> 
+0

謝謝,我會試試看 – pixel

相關問題