![](/img/trans.png)
[英]How to align vertical textview and editText in Linearlayout in android
[英]Android align textview and edittext
在下面的xml文件中。我正在嘗試對齊contents.ie,第一個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>
另一種方法,對我來說效果很好,在你的xml文件中,添加一個父<LinearLayout>
來指定android:orientation="horizontal"
來包含你的TextView
和EditText
。
這個父LinearLayout
必須在你的第一個必須指定android:orientation="vertical"
LinearLayout
中:
<!-- 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>
這是結果(警告標志是因為提示和文本的硬編碼字符串......):
我有同樣的問題試圖目標android 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>
您為多個視圖使用相同的ID,然后多個視圖使用相同的id使用layout_below
,這就是為什么有一些在彼此之上。 讓他們成為獨特的ids。 還有你用於某些align_left
的id甚至在那里,比如editText1
。
簡短回答:為每個視圖使用唯一ID,並檢查對齊和定位等的引用。
你的下一個問題是你不應該嘗試像這樣分層你的觀點,有一些叫做android:hint="hint text"
這就是我認為你想要的。 一旦用戶開始輸入文本,文本將隱藏,但除此之外,它就像在其上面有一個文本視圖...
這些都沒有解決我的問題。 我所做的是將android:textAlignment="center"
到XML中的textView。 編輯文本默認居中。
TextView
和EditText
都在水平LinearLayout
。
將此屬性添加到EditText:
android:layout_below="@+id/hostname"
最好的方法是刪除所有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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.