これは私が持っているものです:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:id="@+id/LinearLayout01"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:background="#FFFFFF">
<LinearLayout Android:id="@+id/LinearLayout01"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"
Android:background="#E30000"
Android:layout_gravity="center_horizontal|center_vertical"
Android:gravity="center_horizontal|center_vertical">
<TextView
Android:id="@+id/TextView00"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textColor="#FFFFFF"
Android:textSize="20px"
Android:textStyle="bold"
Android:text="Something"
Android:gravity="right|center_vertical"
/>
<LinearLayout Android:id="@+id/LinearLayout01"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"
Android:gravity="right|center_vertical"
Android:layout_gravity="center_vertical"
Android:background="#E30000">
<Button
Android:id="@+id/btnCalls"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:drawableLeft="@drawable/icon"
Android:gravity="right|center_vertical"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
そして私はこれが欲しい:
したがって、水平方向の中央にテキストを配置し、垂直方向の中央にボタンを配置します。
何が足りないのですか?私はRelativeLayoutを試したことがないので、LinearLayoutでこれを解決したいと思います。
これを試してみてください
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:id="@+id/LinearLayout01"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:background="#FFFFFF">
<LinearLayout Android:id="@+id/LinearLayout01"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"
Android:background="#E30000"
Android:layout_gravity="center_horizontal|center_vertical"
Android:gravity="center_vertical">
<TextView
Android:id="@+id/TextView00"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textColor="#FFFFFF"
Android:textSize="20px"
Android:textStyle="bold"
Android:text="Something"
Android:layout_weight="1"
Android:gravity="center"/>
<LinearLayout Android:id="@+id/LinearLayout01"
Android:layout_height="wrap_content"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"
Android:gravity="right|center_vertical"
Android:layout_gravity="center_vertical"
Android:background="#E30000"
Android:layout_width="wrap_content">
<Button
Android:id="@+id/btnCalls"
Android:layout_width="wrap_content"
Android:drawableLeft="@drawable/icon"
Android:gravity="right|center_vertical"
Android:layout_height="wrap_content"
Android:layout_margin="5dip"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
Android:gravity="right|center_vertical"
textViewを右揃えにします。 center_horizontalはどうですか?
そして、LinearLayoutsは同じIDを持っています。それ以上コードがない場合は、そのうちの1つを削除します。
OPが意図したとおりに機能する答えはありませんでしたが、RelativeLayoutソリューションが最も近いものでした。 TextViewが中央に配置されていないことを除いて。ただし、layout_centerInParent = trueを使用すると、チャームのように機能します。
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<TextView
Android:id="@+id/TextView00"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textColor="#FFFFFF"
Android:textSize="20px"
Android:textStyle="bold"
Android:text="Something"
Android:layout_centerInParent="true" />
<Button
Android:id="@+id/btnCalls"
Android:drawableLeft="@drawable/icon"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"/>
</RelativeLayout>
テキストビューでAndroid:gravity="right|center_vertical"
を使用しました。 Android:gravity="center"
を使用します。
左に表示したい要素と右に表示したい要素の間に、水平LinearLayout内に空のビューを追加してみてください。例:
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" >
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
<View
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:layout_weight="1"
/>
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
</LinearLayout>
重力とは、コンポーネント内のコンポーネント内の物の位置を意味すると思います(textviewの場合、指定したテキストを意味します)。ここで、layout_gravityは、レイアウト全体におけるコンポーネント自体の位置を意味します。
使用してみてください:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:id="@+id/LinearLayout01"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:background="#FFFFFF"
>
<LinearLayout Android:id="@+id/LinearLayout01"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"
Android:background="#E30000"
Android:layout_gravity="right"
Android:gravity="center_vertical|right"
>
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="right|center_vertical"
Android:gravity="center_vertical|center"
Android:layout_weight="0.9"
>
<TextView
Android:id="@+id/TextView00"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textColor="#FFFFFF"
Android:textSize="20px"
Android:textStyle="bold"
Android:text="Something"
Android:gravity="center_horizontal"
Android:layout_gravity="center_horizontal|center_vertical"
/>
</LinearLayout>
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="right|center_vertical"
Android:gravity="center_vertical|right"
Android:paddingTop="5dip"
Android:layout_weight="0.1"
>
<Button
Android:id="@+id/btnCalls"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:drawableLeft="@drawable/icon"
Android:layout_gravity="center_vertical"
Android:gravity="center"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
TextView
とLinearLayout
のレイアウトの重みを定義します
Android:layout_weight="1"
をTextView
に設定します
Android:layout_weight="0"
をLinearLayout
に設定します
また、layout_width="wrap_content"
をLinearLayout
に変更し、layout_gravity="center"
をTextView
に設定します。
これに対する解決策は-Android:gravity = "center_vertical"
通常、それが機能することを確認するために、親の位置にも注意を払う必要があります。
ただRelativeLayoutとwallaaaを使用してください!!!
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<TextView
Android:id="@+id/TextView00"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textColor="#FFFFFF"
Android:textSize="20px"
Android:textStyle="bold"
Android:text="Something"
Android:gravity="center" />
<Button
Android:id="@+id/btnCalls"
Android:drawableLeft="@drawable/icon"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"/>
</RelativeLayout>