我想把一個按鈕放在EditText旁邊,我希望他們的高度匹配。如何獲得按鈕的高度以匹配另一個元素的高度?
例如,從內置在Android瀏覽器:
GO按鈕是相同的高度的EditText字段。我知道我可以在父佈局視圖中包裝這兩個視圖,並將它們的高度設置爲fill_parent,並且這將使它們匹配。不過,我想這樣做,而不必給佈局一個靜態的大小。我寧願讓EditText根據字體大小採取任何需要的高度,然後讓它旁邊的按鈕匹配可能的高度。
這可能與一個XML佈局?
我想把一個按鈕放在EditText旁邊,我希望他們的高度匹配。如何獲得按鈕的高度以匹配另一個元素的高度?
例如,從內置在Android瀏覽器:
GO按鈕是相同的高度的EditText字段。我知道我可以在父佈局視圖中包裝這兩個視圖,並將它們的高度設置爲fill_parent,並且這將使它們匹配。不過,我想這樣做,而不必給佈局一個靜態的大小。我寧願讓EditText根據字體大小採取任何需要的高度,然後讓它旁邊的按鈕匹配可能的高度。
這可能與一個XML佈局?
您將需要使其高度爲EditText
wrap_content
並且Button
只是fill_parent
。您需要將它們都包裝在父母的Layout
中。這樣他們與同一個Layout
家長相關聯。
嘗試一下,看看它是如何工作的,如果它有助於讓我知道。如果它不,也許我可以給你一些代碼來幫助你。
謝謝你提供的幫助,但法爾馬裏的答案完美無缺,所以我全部定下來了。再次感謝。 – cottonBallPaws 2010-11-15 21:21:35
實際上,在沒有包裝視圖的情況下嘗試這樣做後,我無法正確排列文本右側的按鈕,因爲我在描述Falmarri答案時所描述的問題。使用你的方法,我能夠獲得按鈕的大小和放置正確,所以我會把你的標記作爲答案。 – cottonBallPaws 2010-11-16 05:56:57
推測EditText
和Button
在RelativeLayout
之內。將按鈕的佈局屬性設置爲EditText
的alignTop
和alignBottom
。
這工作很好,不需要包裝,非常感謝你。 – cottonBallPaws 2010-11-15 21:20:35
如何獲取按鈕左側的EditText?我試着在EditText上使用layout_toLeftOf =「button的id」,但是由於Button是在xml文件中的EditText之後聲明的,所以我得到一個錯誤,即該按鈕的id不存在。我無法將它們反轉,因爲我遇到同樣的問題,Button按照您所描述的那樣引用了EditText的id。有關如何處理這個問題的任何建議?謝謝 – cottonBallPaws 2010-11-15 22:24:07
你想要的是相對佈局。一些評論的例子如下
我們從這個RelativeLayout作爲父母開始。這可以包裝所有內容。 在那個父類中,我們把2個元素,按鈕和你的例子中的editText。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
我們首先將Button元素放在右上角。那是什麼layout_alignParentRight和layout_alignParentTop都是關於。再次,這是最大的元素,所以我們會讓它使用wrap_content包裝所有內容的高度和寬度。
<Button
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="some_text" />
現在第二個元素中,EDITTEXT我們要對準我們先前元素的左側,使用與layout_toLeftOf參數的id引用來實現這一點。
<EditText
android:id="@+id/EditText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/Button1"
android:hint="some_hint"
android:inputType="textCapWords" />
關閉RelativeLayout,現在渲染它,看看你可能已經得到了什麼。
</RelativeLayout>
由於EDITTEXT在高度較小它不會匹配它放在旁邊的按鈕。解決方案是添加更多的佈局參數。你正在尋找的神奇的是layout_alignBottom和layout_alignParentTop。
android:layout_alignBottom="@+id/Button1"
android:layout_alignParentTop="true"
添加這兩個,你得到你的佈局的權利。
不適用於線性佈局! – 2015-11-30 07:17:30
@farhan patel這就是爲什麼我開始解釋說你需要一個相對的佈局;-) – hcpl 2015-11-30 08:11:38
這個問題需要進行更新,以包括新ConstraintLayout。 – 2017-10-05 20:22:08