2010-11-09 79 views
0

我想要實現一個屏幕垂直分成一半的佈局,右半部分有1個文本字段,左側有文本和編輯字段。我想讓左邊的文字從中心和左邊的字段開始結束。我試圖使用下面的代碼,但它不起作用。android table column sizing

我用線性佈局,我怎麼能移動文本框到左中心在下面的代碼

<LinearLayout android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:orientation="vertical" 
    android:gravity="center"> 
    <LinearLayout android:id="@+id/calcInterestRateRow" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <LinearLayout android:layout_marginRight="3dip" 
      android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="right" 
      android:orientation="horizontal" android:layout_weight="1"> 
      <TextView android:text="%" android:textColor="@color/white" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
      <EditText android:id="@+id/calcInterestRateLabel" 
       android:layout_height="wrap_content" android:layout_width="90dip" 
       android:lines="1" android:inputType="phone" android:imeOptions="actionNext" /> 
     </LinearLayout> 
     <TextView android:id="@+id/calcSalesTaxLabel" 
      android:layout_marginLeft="3dip" android:layout_width="fill_parent" 
      android:layout_height="wrap_content" android:text="Interest Rate %" 
      android:textColor="@color/white" android:layout_weight="1" /> 
    </LinearLayout> 
</LinearLayout> 

回答

0

嘗試是這樣的:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     > 
     <TextView 
      android:id="@+id/interest_rate_label" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="%" 
      /> 
     <EditText 
      android:id="@+id/interest_rate_edit" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:hint="Interest Rate..." 
      /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     > 
     <TextView 
      android:id="@+id/sales_tax_label" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Interest Rate %" 
     /> 
    </LinearLayout> 
<LinearLayout> 

我會測試它,當我得到家,我認爲這將工作。基本上,只需在LinearLayout中放置兩個單獨的LinearLayout,每個LinearLayout加權爲1(因此它們的寬度相等),然後將視圖放置在這些LinearLayout中。您也可能想要爲LinearLayouts添加一些填充。

編輯:試試這種方式與TableLayout。這不是完美的,但它會讓你在那裏!

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns="1|2" 
    > 
    <TableRow 
     android:layout_height="wrap_content" 
     android:weightSum="2" 
     android:layout_margin="5dp" 
     > 
     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_weight="1" 
      android:paddingRight="5dp" 
      android:gravity="right|center_vertical" 
      android:hint="percent" 
      /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left|center_vertical" 
      android:layout_weight="1" 
      android:paddingLeft="5dp" 
      android:textStyle="bold" 
      android:textSize="16sp" 
      android:textColor="@android:color/white" 
      android:text="Interest Rate" 
      /> 
    </TableRow> 

    <TableRow 
     android:layout_height="wrap_content" 
     android:weightSum="2" 
     android:layout_margin="5dp" 
     > 
     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_weight="1" 
      android:paddingRight="5dp" 
      android:gravity="right|center_vertical" 
      android:hint="months" 
      /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left|center_vertical" 
      android:layout_weight="1" 
      android:paddingLeft="5dp" 
      android:textStyle="bold" 
      android:textSize="16sp" 
      android:textColor="@android:color/white" 
      android:text="Loan Term" 
      /> 
    </TableRow> 

</TableLayout> 
+0

這裏是屏幕截圖,我儘量做到http://i56.tinypic.com/wld641.jpg – mkso 2010-11-09 19:34:02

+0

這看起來像一個TableLayout可能爲你工作好。我對TableLayout術語不太自信,所以我會等待直到我回家之前嘗試一個例子。你基本上需要一個等寬的兩列表格佈局,左列有gravity =「right」,右列有gravity =「left」。 – kcoppock 2010-11-09 19:40:30

+0

添加了TableLayout解決方案! – kcoppock 2010-11-09 21:35:16

相關問題