EditTextの横にボタンを配置し、それらの高さを一致させたい。
たとえば、組み込みのAndroidブラウザから:
Goボタンは、EditTextフィールドと同じ高さです。これらの両方のビューを親レイアウトビューでラップし、両方の高さをfill_parentに設定すると、一致するようになります。ただし、レイアウトに静的なサイズを与えることなくこれを実行したいと思います。私はむしろ、EditTextにフォントサイズに基づいて必要な高さを取得させ、次に横にあるボタンを高さに合わせます。
これはxmlレイアウトで可能ですか?
EditText
wrap_content
をその高さに作成し、Button
をちょうどfill_parent
にする必要があります。両方をLayout
親でラップする必要があります。そうすれば、それらは同じLayout
親に関連付けられます。
それを試して、それがどのように機能するかを確認してください。そうでない場合、私はあなたを助けるいくつかのコードを与えることができます。
おそらくEditText
とButton
はRelativeLayout
の中にあります。ボタンのレイアウト属性を、alignTop
のalignBottom
およびEditText
に設定します。
必要なのは相対的なレイアウトです。コメント付きの例は次のとおりです
まず、親としてRelativeLayoutから始めます。すべてのコンテンツをラップできます。その親には、例のボタンとeditTextの2つの要素を配置します。
<?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" />
2番目の要素である前の要素の左側に配置するeditTextで、id参照をlayout_toLeftOfパラメーターと共に使用して、それを実現します。
<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は高さが小さいため、隣に配置されているButtonとは一致しません。そのための解決策は、レイアウトパラメーターをさらに追加することです。あなたが探している魔法のものはlayout_alignBottomとlayout_alignParentTopです。
Android:layout_alignBottom="@+id/Button1"
Android:layout_alignParentTop="true"
これら2つを追加すると、レイアウトが正しくなります。