有人可以告诉我如何在Expandable ListView组之间建立一个空格。我尝试了很多解决方案,但每当我给分隔线高度时,它总是会增加子分隔线的高度。我分别尝试android:divider="@drawable/group_separator"
和android:childDivider="@drawable/child_separator"
,并尝试在getChildView
和getGroupView
中以编程方式单独设置高度,但结果相同。它总是增加子分隔符之间的空间,但我只想在组之间创建空间,即使它们之间没有项目。即使没有像下图所示的项目,也希望给出40dp
的空间。任何帮助将受到高度赞赏。提前谢谢。
在我应用分隔符高度后,它变得像
答案 0 :(得分:2)
回答我自己的问题,以便其他任何人都可能发生这个问题所以这里是一个尝试了很多的解决方案。我已经通过一个条件完成它只是检查如果组没有孩子那么它应该设置白色布局将显示为白色空白区域,不需要填充,分隔或边距等其他内容。就像在getGroupView()
中的下面的代码一样,你不必做任何其他事情。我使用的layout
(blank_white_layout
)只是一个relativelayout
白色background
,你可以根据自己的需要给它高度。
if (getChildrenCount(groupPosition) == 0) {
view = inflater.inflate(R.layout.blank_white_layout, null);
}
及以下是我的适配器类
中的完整getGroupView
代码
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
if (groupPosition == 0 ) {
convertView = inflater.inflate(R.layout.group_layout1, null);
}
if (getChildrenCount(groupPosition) == 0) {
convertView = inflater.inflate(R.layout.blank_white_layout, null);
}else{
convertView = inflater.inflate(R.layout.group_layout2, null);
}
TextView text1 = (TextView) convertView.findViewById(android.R.id.text1);
return convertView;
}
答案 1 :(得分:1)
从你的getView()方法中检测你想要分开的行(按位置和类型) 只需添加填充或边距,非常简单。
只要确保在listview回收该视图时删除该填充或边距。
答案 2 :(得分:0)
为组视图和子视图创建单独的xml布局。将填充设置为组布局xml文件。
答案 3 :(得分:0)
只需在group2 xml视图中添加此标记即可。
android:layout_marginTop="40dp"