Mar*_*oli 7 android android-layout android-xml
我有expandablelistview,我想在组项目之间添加填充(或边距),我margin-botton在组项目上使用,它可以工作,但现在它也应用于组项目及其子项目,我想在组项目之间保留一个空格,不是在一个组项目和它的孩子之间,我的工作方式如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#FFFFFF">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:typeface="serif"
android:textSize="25dip"
android:textColor="#025f7c"
android:text="@string/tv_allAddresses"
android:layout_gravity="center"
android:layout_marginTop="20dip"
android:layout_marginBottom="25dip"/>
<ExpandableListView
android:id="@+id/elv_all_addresses_addresses"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dip">
</ExpandableListView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_all_address_group_groupName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="30dip"
android:textColor="#000000"
android:textSize="20dip"
android:typeface="serif" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_all_address_child_label"
android:paddingLeft="50dip"
android:typeface="serif"
android:textSize="15dip"
android:textColor="@color/BlueViolet"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_all_address_child_value"
android:textColor="#000000"
android:layout_marginLeft="10dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
因为您使用的adapter是扩展的,BaseExpandableListAdapter所以您可以通过编程方式设置填充,方法是在组未扩展时将填充设置为组项,然后在组扩展时删除填充,并为每个组将填充设置为其中的最后一个子项。
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (childPosition == groups.get(groupPosition).getChilds().size() - 1) {
convertView.setPadding(0, 0, 0, 20);
} else
convertView.setPadding(0, 0, 0, 0);
return convertView;
}
Run Code Online (Sandbox Code Playgroud)
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
if (isExpanded)
convertView.setPadding(0, 0, 0, 0);
else
convertView.setPadding(0, 0, 0, 20);
return convertView;
}
Run Code Online (Sandbox Code Playgroud)
我假设您正在为组和孩子使用arraylist,您可以groups.get(groupPosition).getChilds().size() - 1根据组的大小将其替换为组的大小
| 归档时间: |
|
| 查看次数: |
14598 次 |
| 最近记录: |