我使用ExpandableListView在Activity中顯示父子關係。這工作正常,但因爲在我們的情況下,父母和孩子的信息是相似的,我希望能夠隱藏父母信息的情況下,每個父母只有一個孩子。ExpandableListView - 如果每個家長只有一個孩子,只顯示子元素
例如,在下面的屏幕截圖中,當前顯示的我的3產品每個都有一個孩子。因爲大部分有用的信息在部分(子)視圖上是足夠的,所以我想隱藏父母(產品)視圖。
這是可能的用ExpandableListView?
我使用ExpandableListView在Activity中顯示父子關係。這工作正常,但因爲在我們的情況下,父母和孩子的信息是相似的,我希望能夠隱藏父母信息的情況下,每個父母只有一個孩子。ExpandableListView - 如果每個家長只有一個孩子,只顯示子元素
例如,在下面的屏幕截圖中,當前顯示的我的3產品每個都有一個孩子。因爲大部分有用的信息在部分(子)視圖上是足夠的,所以我想隱藏父母(產品)視圖。
這是可能的用ExpandableListView?
在我看來,使用回收視圖將會更容易爲你想要做的事情。下面是一個很好的例子:https://www.bignerdranch.com/blog/expand-a-recyclerview-in-four-steps/
這是一種詭異的方式,但是您可以檢查孩子數是否爲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>
謝謝,我會試試看 – pixel
感謝@DavidRauca,但我堅持ExpandableListView – pixel