Android布局:水平LinearLayout中的左项强制右对齐文本混乱

时间:2012-06-07 15:08:15

标签: android android-layout

wowrly?

这就是我所拥有的。我需要在组数据中包含那些粗体标题,而不是右边的数据。这是布局:

<?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="wrap_content"
    android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    android:paddingRight="5dip"
    android:paddingBottom="5dip"
    android:paddingTop="5dip">
    <TextView
        android:id="@+id/igi_product"
        android:textStyle="bold"
        android:textSize="18sp"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="0">
        <TableRow>
            <TextView
                android:id="@+id/igi_units"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
            <TextView
                android:id="@+id/igi_uom"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/igi_total"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/igi_price"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
    </TableLayout>
</LinearLayout>

编辑:

我尝试用RelativeLayout替换LinearLayout,这就是出现的结果:

wowrly?

代码:

<?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="wrap_content"
    android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    android:paddingRight="5dip"
    android:paddingBottom="5dip"
    android:paddingTop="5dip">
    <TextView
        android:id="@+id/igi_product"
        android:textStyle="bold"
        android:textSize="18sp"
        android:layout_alignParentLeft="true"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>
    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true">
        <TableRow>
            <TextView
                android:id="@+id/igi_units"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
            <TextView
                android:id="@+id/igi_uom"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/igi_total"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/igi_price"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
    </TableLayout>
</RelativeLayout>

2 个答案:

答案 0 :(得分:3)

出于此目的,我强烈推荐RelativeLayout 因为LinearLayout,我也遇到了很多(最微小的)问题 RelativeLayout对我很有用。

好的资源:http://www.mkyong.com/android/android-relativelayout-example/

否则: 尝试在混乱的textview中使用android:layout_width="fill_parent",或者给它一个权重属性(android:layout_weight="1")或尝试使用android:minWidth="50dp" ...

也许其中一个可能适合你。

答案 1 :(得分:1)

这是最终的布局代码和图像。神奇的是在layout_weight="1" TextView中设置layout_width="0dp"igi_product

<?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="wrap_content"
    android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
    android:paddingRight="5dip"
    android:paddingBottom="5dip"
    android:paddingTop="5dip">
    <TextView
        android:id="@+id/igi_product"
        android:textStyle="bold"
        android:textSize="18sp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_width="0dp"/>
    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right">
        <TableRow>
            <!--<TextView
                android:text="Units:"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>-->
            <TextView
                android:id="@+id/igi_units"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
            <TextView
                android:id="@+id/igi_uom"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <!--<TextView
                android:text="Total:"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>-->
            <TextView
                android:id="@+id/igi_total"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <!--<TextView
                android:text="Price:"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>-->
            <TextView
                android:id="@+id/igi_price"
                android:gravity="right"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
    </TableLayout>
</LinearLayout>

红侠: