我使用ExpandableListView在Activity中显示父子关系。这很好,但因为在我们的例子中,父母和孩子的信息是相似的,我希望能够在每个父母只有一个孩子的情况下隐藏父信息。
例如,在下面的屏幕截图中,我目前显示的3个产品每个都有一个孩子。因为大多数有用的信息对于部分(子)视图是足够的,所以我想隐藏父(产品)视图。
使用ExpandableListView可以实现吗?
答案 0 :(得分:1)
这是一种hacky方式,但您可以检查子计数是否为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>
答案 1 :(得分:0)
在我看来,使用回收站视图将更容易实现您的目标。这是一个很好的例子:https://www.bignerdranch.com/blog/expand-a-recyclerview-in-four-steps/