2015-11-07 36 views
1

我是Android應用程序開發的新手,儘管迄今爲止我對編碼方面的理解都很好,但我無法圍繞佈局進行思考。我試圖創建一個應用程序,其中EditText元素的大小均勻,儘管其大小爲TextView。現在的應用程序看起來像在左邊,我想要的是在右邊。安卓佈局 - 製作EditText行尺寸均勻

App Layout

下面是我的佈局代碼。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".RandApp"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:orientation="vertical" 
     android:id="@+id/gridLayout"> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_row="0" 
      android:layout_column="0" 
      android:layout_weight="1"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="@string/one" 
       android:id="@+id/lblOne" 
       android:layout_gravity="center_vertical" /> 

      <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/txtOne" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="1" 
       android:textAlignment="center" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_row="1" 
      android:layout_column="0" 
      android:layout_weight="1"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="@string/two" 
       android:id="@+id/lblTwo" 
       android:layout_gravity="center_vertical" /> 

      <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/txtTwo" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="1" 
       android:textAlignment="center" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_row="1" 
      android:layout_column="0" 
      android:layout_weight="1"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="@string/three" 
       android:id="@+id/lblThree" 
       android:layout_gravity="center_vertical" /> 

      <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/txtThree" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="1" 
       android:textAlignment="center" /> 
     </TableRow> 

    </LinearLayout> 

</RelativeLayout> 

我能做些什麼來達到預期效果?佈局代碼主要是使用Android Studio的設計器創建的,只做了幾個小小的更改。

+0

嘗試給每個 –

回答

1

嘗試使用重量..

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:orientation="vertical" 
     android:id="@+id/gridLayout"> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_row="0" 
      android:layout_column="0" 
      android:layout_weight="1"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="one" 
       android:id="@+id/lblOne" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="2" /> 

      <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/txtOne" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="4" 
       android:textAlignment="center" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_row="1" 
      android:layout_column="0" 
      android:layout_weight="1"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="two" 
       android:id="@+id/lblTwo" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="2" /> 

      <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/txtTwo" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="4" 
       android:textAlignment="center" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_row="1" 
      android:layout_column="0" 
      android:layout_weight="1"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="three" 
       android:id="@+id/lblThree" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="2" /> 

      <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/txtThree" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="4" 
       android:textAlignment="center" /> 
     </TableRow> 

    </LinearLayout> 

</RelativeLayout> 
+0

寬度爲0dp的textview和edittext加權謝謝。體重是如何工作的?我無法弄清楚它應該做什麼,以及如何讓它們的權重看起來成比例(第三個標籤和文本輸入有點偏離,特別是當您將設備橫向移動時)。 – DavidB

1

這裏是我的代碼

最簡單的方式..

<?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="wrap_content" 
android:orientation="horizontal" > 

<TextView 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:text="Blah" 
android:textSize="15dp" /> 


<EditText 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:textSize="15dp" /> 
</LinearLayout> 

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" > 

<TextView 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:text="Blah" 
android:textSize="15dp" /> 

<EditText 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:textSize="15dp" /> 
</LinearLayout> 

</LinearLayout> 

隨意問什麼..快樂編碼: )

+0

謝謝你的幫助。這個佈局不會有不同的屏幕尺寸問題嗎? – DavidB

+0

是的,爲了克服這個問題,您需要使用尺寸並將其賦予靜態賦予edittext的文本大小。 –