2012-11-23 81 views
3

我對Android佈局很新穎。在相對佈局中設置寬度比例

我試圖設置年齡:EditText:Year的比例爲1:3:1,高度相同。

我應該使用TableLayout嗎?如果是,我怎麼能防止TableRow1改變寬度等,當我在其他行做一些東西?

enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relative_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
          > 

    <TextView 
     android:id="@+id/txtAge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/search_text" 
     android:layout_alignBottom="@+id/search_text" 
     android:layout_alignParentLeft="true" 
     android:text="Age" 
     android:layout_weight="0.3" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
     android:id="@+id/txtYears" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/search_text" 
     android:layout_alignBottom="@+id/search_text" 
     android:layout_alignParentRight="true" 
     android:text="Years" 
     android:layout_weight="0.3" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <EditText 
     android:id="@+id/search_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_toLeftOf="@id/txtYears" 
     android:layout_toRightOf="@id/txtAge" 
     android:ems="10" 
     android:hint="Enter your age" 
     android:inputType="text|number" 
     android:lines="1" 
     android:layout_weight="0.7" 
     android:maxLength="2" 
     android:maxLines="1" /> 



    <TextView 
     android:id="@+id/txtHeight" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignBaseline="@+id/enterHeight" 
     android:layout_below="@+id/search_text" 
     android:text="Height" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:layout_weight="1"/> 

    <Spinner 
     android:id="@+id/spinHeight" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignTop="@+id/txtHeight" 
     android:layout_weight="1" /> 

    <EditText 
     android:id="@+id/enterHeight" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/search_text" 
     android:layout_toLeftOf="@+id/spinHeight" 
     android:layout_toRightOf="@+id/txtHeight" 
     android:ems="10" 
     android:hint="Enter your height" 
     android:inputType="text|number" 
     android:lines="1" 
     android:layout_weight="3" 
     android:maxLength="3" 
     android:maxLines="1" > 

     <requestFocus /> 
    </EditText> 

</RelativeLayout> 
+0

你能得到你想怎麼有你的佈局? – osayilgan

+0

我做到了。見圖片。 – VoonArt

+0

這是你想要的還是這是你迄今爲止的? – osayilgan

回答

4

我想這是你想要的。見下圖。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:orientation="horizontal" 
    android:weightSum="100" > 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="20" 
     android:gravity="center_vertical|center_horizontal" 
     android:text="Age" 
     android:textColor="#FFF" 
     android:textSize="16sp" 
     android:textStyle="bold" /> 

    <EditText 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="60" /> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="20" 
     android:gravity="center_vertical|center_horizontal" 
     android:text="Years" 
     android:textColor="#FFF" 
     android:textSize="16sp" 
     android:textStyle="bold" /> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:orientation="horizontal" 
    android:weightSum="100" > 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="20" 
     android:gravity="center_vertical|center_horizontal" 
     android:text="Height" 
     android:textColor="#FFF" 
     android:textSize="16sp" 
     android:textStyle="bold" /> 

    <EditText 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="60" /> 

    <Spinner 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="20" /> 
</LinearLayout> 

</LinearLayout> 

enter image description here

+0

向我顯示XML錯誤。 一個線性丟失? – VoonArt

+0

什麼是錯誤?也許你忘了包括第一行? 請參閱編輯並再次複製代碼。我有屏幕截圖,所以它適用於我。 – osayilgan

+0

我想現在,它很好。再次檢查答案。我忘了複製最後一行。 – osayilgan

2

我認爲你應該使用線性layout.you可以設置android:weightSum="10"屬性。

它的總佈局。現在您必須使用android:layout_weight="2"設置冷凍物體。

這樣就可以控制佈局中的對象。

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:layout_marginLeft="5dp" 
    android:layout_weight="2" 
    android:text="Age" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="6" > 
</EditText> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:layout_marginRight="5dp" 
    android:layout_weight="2" 
    android:text="Years" /> 

0

有這樣的事情..僞測試的代碼..

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relative_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

<LinearLayout 
    android:gravity = "center_horizontal" 
    android:id="@+id/firstLinearLayout" 
    android:orientation = "horizontal" 
    android:weightSum="10"> 

<TextView 

     android:weight = "2" 
     /> 

<TextView 

     android:weight = "6" 
     /> 

    <EditText 

     android:weight = "2" 
     /> 
</LinearLayout> 
<LinearLayout 
    android:gravity = "center_horizontal" 
    android:layout_below="@id/loginButtonLayout" 
    android:orientation = "horizontal" 
    android:weightSum="10"> 
</LinearLayout>