6

ビューのコンテンツが中央に配置されないのはなぜですか?

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:layout_gravity="center_vertical"
    tools:context=".MainActivity">

    <EditText 
        android:id="@+id/messageTextField"
        android:layout_weight="1"
        android:inputType="number"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/messageTextFieldPlaceholder"
    />
    <Button
        android:id="@+id/sendButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/sendButtonTitle"
        android:onClick="sendMessage"
    />

</LinearLayout>

垂直方向の配置に関する SO スレッドをいくつか見ましたが、これも見ましたが、水平方向の LinearLayout しかないため、重力を設定するとビューが左右に調整されます。

LinearLayout は親の寸法を持っているので、画面全体を埋めませんか?

android:layout_gravity="center_vertical"サブビューを寸法の中央 (垂直方向) に揃えるべきではありませんか?

これは、私が行ったコーディング全体で私にとって理にかなっているのですが、なぜアンドロイドが意味をなさないのですか?

その中に他のすべてを保持し、それを持っている垂直の別の LinearLayout が必要android:layout_gravity="center_vertical"ですか?

4

2 に答える 2

11

layout_gravity
子供が親に供給できる標準重力定数。

gravity
オブジェクト自体の中で、x軸とy軸の両方にオブ​​ジェクトのコンテンツを配置する方法を指定します。

したがって、コンテンツを垂直方向の中央に配置する必要はありgravityませんlayout_gravity

于 2013-01-04T21:08:46.080 に答える
3

使用する代わりに、使用してandroid:layout_gravity="center_vertical"くださいandroid:gravity="center_vertical"、それは動作します... :)

于 2013-01-04T21:08:55.200 に答える