Pla*_*lov 19 android parent expandablelistview divider
我想只在父元素之间放置divider.当我设置
android:divider="@drawable/divider"Run Code Online (Sandbox Code Playgroud)android在父元素之间创建分隔符,但也在子元素之间创建分隔符.当我添加android:childDivider="@color/transparent"Run Code Online (Sandbox Code Playgroud)android删除子元素之间的分隔符,但它们之间的空闲空间仍然存在.为什么?我试过了android:dividerHeight="0dp"Run Code Online (Sandbox Code Playgroud) 但什么都没发生.
我想在父元素之间设置分隔符,但我不希望子元素之间有任何分隔符或空格.
任何想法怎么做?
Ama*_*Ray 25
为了从子视图中删除分隔符,而不是在可扩展列表中的父项之间删除分隔符:
添加android:childDivider="#00000000"在ExapandableListViewXML中的属性:
<ExpandableListView
android:id="@+id/elv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:childDivider="#00000000" />
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此页面
赋予分割器颜色及其高度(当组折叠时分隔符将可见)
<ExpandableListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@color/color_black"
android:dividerHeight="1dp"
android:groupIndicator="@null" />
Run Code Online (Sandbox Code Playgroud)
我所做的是将 ExpandableListView 的分隔符设置为 0,然后将“分隔符”组插入到它的 ExpandableListAdapter 中:
// To get dividers between the groups we add 'divider views' as if they were
// themselves groups.
public int getGroupCount() {
// Actual groups are at even groupPositions, dividers at odd
return (this.data.size() * 2) - 1;
}
public long getGroupId(int groupPosition) {
if(groupPosition % 2 != 0) return R.id.divider;
else return R.id.group;
}
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
if(groupPosition % 2 != 0) {
View divider = convertView;
if(divider == null || divider.getId() != R.id.divider) {
divider = this.inflater.inflate(R.layout.divider, null);
}
return divider;
}
View group = convertView;
if(group == null || group.getId() != R.id.group) {
group = this.inflater.inflate(R.layout.group, null);
}
return group;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36162 次 |
| 最近记录: |