对齐TableRow中的项目

时间:2016-06-02 11:05:18

标签: android xml alignment tablerow

我有一个TableRow,它有四个文本视图。我正在尝试对齐我的tablerow中的项目。当项目1(TextView)的字符串很长时,它会推送项目2.我尝试设置android:layout_weight =“1”,但是没有用。有没有办法对齐物品?

这是我的row.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:background="@color/white_background"
    android:orientation="vertical" >


    <TableRow
        android:id="@+id/product_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white_background"
        android:layout_margin="5dp"
        android:orientation="vertical" >

        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:background="@color/black" />

        <TextView
            android:id="@+id/product_name"
            style="@style/product_row"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="8"
            android:ellipsize="end"
            android:singleLine="true"
            android:layout_marginLeft="1dp"
            android:textColor="@color/black" />

        <TextView
            android:id="@+id/product_id"
            style="@style/product_row"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="100dp"
            android:layout_weight="5"
            android:ellipsize="end"
            android:singleLine="true"
            android:gravity="right"
            android:textColor="@color/black" />
        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:background="@color/black" />
        <TextView
            android:id="@+id/total_quantity"
            style="@style/product_row"
            android:layout_width="wrap_content"
            android:layout_weight="3"
            android:ellipsize="end"
            android:singleLine="true"
            android:layout_marginRight="40dp"
            android:gravity="center_horizontal"
            android:layout_height="wrap_content"
            android:textColor="@color/black" />
        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:background="@color/black" />
        <TextView
            android:id="@+id/total_value_amt"
            style="@style/product_row"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:ellipsize="end"
            android:singleLine="true"
            android:gravity="right"
            android:text="@string/product_row_value"
            android:textColor="@color/black"/>
    </TableRow>

    <TextView
        android:id="@+id/employee_header"
        style="@style/product_row"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/product_header"
        android:layout_gravity="left"
        android:layout_marginLeft="5dp"
        android:gravity="left"
        android:visibility="gone"
        android:text="@string/crew" />
    <TextView
        android:id="@+id/quantity_header"
        style="@style/product_row"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/product_header"
        android:layout_gravity="right"
        android:layout_marginRight="5dp"
        android:gravity="right"
        android:visibility="gone"
        android:text="@string/quantity_sold" />
    <TableLayout
        android:id="@+id/sales_report_table"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/grey_light"
        />
    <TextView
        style="@style/product_row"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_gravity="center"
        android:layout_marginRight="5dp"
        android:gravity="right"
        android:textColor="@color/black_font" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

试试这个:这可能会对你有帮助。

这是我的示例代码。

 <TableRow
            android:id="@+id/product_header"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:orientation="vertical"
            android:weightSum="4">

            <TextView
                android:id="@+id/product_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:singleLine="true"/>

            <TextView
                android:id="@+id/product_id"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:singleLine="true"/>

            <TextView
                android:id="@+id/total_quantity"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:singleLine="true"/>

            <TextView
                android:id="@+id/total_value_amt"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:singleLine="true" />
        </TableRow>

答案 1 :(得分:0)

我将TableRow放在TableLayout中并使用以下内容来对齐我的tablerow。

android:shrinkColumns="0"
android:stretchColumns="*" // Inside TableLayout.

我还添加了一个

android:weightSum="10" 

使用android:layout_weight属性平均分割我的tablerows。这给了我的textView相等的边距。使用android:layout_weight帮助我平均分割列。