元の質問を大幅に誤認してしまったため、以前の質問を詳細情報で再投稿しています。Android:コントロールを相対レイアウトの別のコントロールの中心に合わせる
以下は元のレイアウトです。これは右のボタンで、2つの編集テキストボックスは残りの幅の半分を占めています。
実際には、これは別の線形レイアウトにネストされていますが、これは私が援助する必要がある部分です。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp" >
<EditText
android:id="@+id/txtUser"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ems="10"
android:layout_weight="1"
android:maxLines="1" />
<EditText
android:id="@+id/txtPassword"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ems="10"
android:layout_weight="1"
android:maxLines="1" />
<Button
android:id="@+id/btnAddPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add" />
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/LinInput" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/LinInput"
android:text="@string/EmptyPass"
android:textSize="24sp"
android:padding="10dp" />
</RelativeLayout>
私の目的は、ドキュメントで示唆されているようにLinearLayoutsの数を減らすことでした。 1つの可能性は、以下のレイアウトで行ったように空のビューを持つことです。空のビューの幅は残りの幅(ボタンを引いたもの)と同じです。このビューの両側に2つのEditTextコントロールを設定しました。
ここでは、幅をビューの中央から始める方法を理解する必要があります。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/vwEmptyView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_toLeftOf="@+id/btnAddPassword"
android:layout_centerHorizontal="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
</View>
<EditText
android:id="@+id/txtUser"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ems="10"
android:layout_weight="1"
android:maxLines="1"
android:layout_toLeftOf="@+id/vwEmptyView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:id="@+id/txtPassword"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ems="10"
android:layout_weight="1"
android:maxLines="1"
android:layout_toRightOf="@+id/vwEmptyView"
android:layout_toLeftOf="@+id/btnAddPassword"
android:layout_toStartOf="@+id/btnAddPassword" />
<Button
android:id="@+id/btnAddPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/btnAddPassword" />
</RelativeLayout>
ところで、階層ビューアには他の相対レイアウトの3つの緑色の点が表示されますが、赤色、赤色、黄色が表示されます。
あなたの最初のアプローチはまったく問題ありません。 'LinearLayout'を削除する必要はありません。それはあまり避けられないものです。あなたがしようとしているものは、直線レイアウトなしで実装するのは難しい –