我希望我的列表视图项目排成一行并显示为表格数据。我在每个ListItem中有四个TextView。我的第1和第4甚至在边缘。我不能让中间排队。有更好的方法吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@color/row_selector"
android:paddingLeft="10dp"
android:paddingRight="5dp"
android:paddingBottom="10dp"
android:paddingTop="10dp" >
<TextView
android:id="@+id/labelGas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:text="@+id/label"
android:textColor="#222"
>
</TextView>
<TextView
android:id="@+id/labelDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="15"
android:text="@+id/label"
android:textColor="#222"
>
</TextView>
<TextView
android:id="@+id/labelApr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="35"
android:text="@+id/label"
android:textSize="18dp" >
</TextView>
<TextView
android:id="@+id/labelFee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:text="@+id/label"
>
</TextView>
</LinearLayout>
答案 0 :(得分:1)
如果为所有TextView标记设置android:layout_width="0dp"
,则视图的宽度将完全根据权重,而不管其实际内容如何。
答案 1 :(得分:0)
尝试使用RelativeLayout,它更强大,更高效:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@color/row_selector"
android:paddingLeft="10dp"
android:paddingRight="5dp"
android:paddingBottom="10dp"
android:paddingTop="10dp" >
<TextView
android:id="@+id/labelGas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text="@+id/label"
android:textColor="#222"
>
</TextView>
<TextView
android:id="@+id/labelDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/labelGas"
android:layout_alignParentTop="true"
android:text="@+id/label"
android:textColor="#222"
>
</TextView>
<TextView
android:id="@+id/labelApr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/labelDate"
android:layout_alignParentTop="true"
android:text="@+id/label"
android:textSize="18dp" >
</TextView>
<TextView
android:id="@+id/labelFee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/labelApr"
android:layout_alignParentTop="true"
android:text="@+id/label"
>
</TextView>
</RelativeLayout>
答案 2 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@color/row_selector"
android:paddingLeft="10dp"
android:paddingRight="5dp"
android:paddingBottom="10dp"
android:paddingTop="10dp" >
<TextView
android:id="@+id/labelGas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="TextView1"
android:textColor="#FFFF00" >
</TextView>
<TextView
android:id="@+id/labelDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="TextView2"
android:visibility="invisible"
android:textColor="#ffff0000" >
</TextView>
<TextView
android:id="@+id/labelApr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="TextView3"
android:visibility="invisible"
android:textColor="#ff00ff00" >
</TextView>
<TextView
android:id="@+id/labelFee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="TextView4"
android:textColor="#ffff6666" >
</TextView>
</LinearLayout>