2012-06-07 39 views
2

wowrly?Android布局:左侧项目水平LinearLayout强制右对齐文本混乱

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

<?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> 

回答

1

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

<?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> 

红侠:

3

为此目的,我强烈建议RelativeLayout
由于我也得到了很多(最微小的)与LinearLayout
RelativeLayout问题对我很好。

良好的ressource:http://www.mkyong.com/android/android-relativelayout-example/

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

也许有可能为你工作。

+1

+1相对布局..也没有必要嵌套--readme –

相关问题