2012-08-28 108 views
3

在下面的xml文件中,我試圖對齊內容.ie,第一個textview,然後是edittext,然後在下一行。但是現在很緊張的文本是強加給另一個如何解決這個問題。Android align textview和edittext

<?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="fill_parent" 
     android:orientation="vertical" > 


     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.70" > 



      <TextView 
       android:id="@+id/hostname" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBaseline="@+id/ip" 
       android:layout_alignParentLeft="true" 
       android:text="hostname" /> 


      <EditText 
       android:id="@+id/ip" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentTop="true" 
       android:layout_marginLeft="39dp" 
       android:ems="10" 
       android:inputType="textEmailAddress" > 

      </EditText> 


    <TextView 
       android:id="@+id/username" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBaseline="@+id/ip" 
       android:layout_alignBottom="@+id/ip" 
       android:layout_alignParentLeft="true" 
       android:text="Hostname" /> 
      <EditText 
       android:id="@+id/username" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@+id/editText1" 
       android:layout_below="@+id/ip" 
       android:layout_marginLeft="45dp" 
       android:layout_marginTop="42dp" 
       android:ems="10" /> 

      <TextView 
       android:id="@+id/password" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBaseline="@+id/hostname" 
       android:layout_alignBottom="@+id/username" 
       android:layout_alignParentLeft="true" 
       android:text="Password" /> 
      <EditText 
       android:id="@+id/password" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/password" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="47dp" 
       android:ems="10" 
       android:inputType="textPassword" /> 


     </RelativeLayout> 

    </LinearLayout> 
+1

哥們..相反的RelativeLayout的使用TableLayout ...並把TextView的和EditText上對各行..簡單.. :-) – user370305

+0

hmnn我已經試過了 – Rajeev

+0

發生了什麼? – FabianCook

回答

-5

最好的辦法是刪除所有textview並設置andoid:hint來編輯文本。

<?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="fill_parent" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/ip" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:ems="10" 
     android:hint="HostName" 
     android:inputType="textEmailAddress" > 
    </EditText> 

    <EditText 
     android:id="@+id/username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:hint="HostName" /> 

    <EditText 
     android:id="@+id/password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:hint="Password" 
     android:inputType="textPassword" /> 

</LinearLayout> 

enter image description here

+5

這不回答這個問題。如果想要在某些EditText中顯示預先填充的數據,該怎麼辦?該提示對描述用戶在這種情況下看到的內容沒有用處。 – ashishduh

+0

不好的建議 –

1

您使用多個視圖,然後多個視圖使用layout_below使用相同的ID相同的ID,這就是爲什麼有一些是在彼此的頂部。讓他們獨一無二的ID。此外,您使用的ID爲align_left,甚至在那裏,例如editText1

簡短的回答:使用唯一的ID爲每個視圖,並檢查您的路線和定位參考等

你的下一個問題是什麼,你不應該試圖和圖層你的看法是這樣,有一種叫做android:hint="hint text"這是我認爲你想要的。文本將隱藏,一旦用戶開始輸入文字,但除此之外,它就像有一個文字視圖在它上面...

9

另一種方式來做到這一點,這對我來說效果不錯,是,在你的XML文件,添加一個父<LinearLayout>指定android:orientation="horizontal"涵蓋您TextViewEditText

此父LinearLayout必須是裏面你的第一個LinearLayout有指定android:orientation="vertical"

<!-- Root Layout --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" <!-- Vertical orientation --> 
    android:paddingLeft="15sp" 
    android:paddingRight="15sp" 
    android:paddingTop="15sp" 
    android:paddingBottom="15sp" > 


    <!-- First Row --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" <!-- Horizontal orientation for the row --> 
     android:paddingTop="15sp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Poids :" 
      android:textSize="15sp" 
      android:textStyle="bold" /> 
     <EditText 
      android:id="@+id/btn_poids" 
      android:inputType="numberDecimal" 
      android:hint="Entrez votre poids" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
    </LinearLayout> 


    <!-- Second Row --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" <!-- Horizontal orientation for the row --> 
     android:paddingTop="15sp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Taille :" 
      android:textSize="15sp" 
      android:textStyle="bold" /> 
     <EditText 
      android:id="@+id/btn_poids" 
      android:inputType="numberDecimal" 
      android:hint="Entrez votre taille" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
    </LinearLayout> 


</LinearLayout> 

這裏的結果(警告標誌是因爲對於提示和文字的硬編碼字符串。 ..):

Result of the above

0

這些沒有解決我的問題。我所做的是將 android:textAlignment="center"添加到XML中的textView。編輯文本默認爲居中。

TextViewEditText都是水平的LinearLayout

0

添加此屬性的EditText:

android:layout_below="@+id/hostname" 
1

我必須努力的目標安卓4.X中同樣的問題我解決它通過使用android:gravity="center_vertical"

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

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:ems="10" 
      android:id="@+id/itemNameLabel" 
      android:text="@string/entry_item_label" 
      android:textSize="@dimen/baseTextSize" 
      android:layout_weight=".15" 
      android:gravity="center_vertical" /> 

     <EditText 
      android:layout_width="0dp" 
      android:layout_weight=".85" 
      android:layout_height="wrap_content" 
      android:inputType="textPersonName" 
      android:ems="10" 
      android:id="@+id/itemName" 
      android:textSize="@dimen/baseTextSize" 
      android:hint="Food, Video Game, etc..." /> 
    </LinearLayout> 
+0

有暗示處理我自己的情況在這裏 –