web-dev-qa-db-ja.com

重力とlayout_gravityの正確な違いは何ですか

重複の可能性:
Android-重力とレイアウト_重力

私はAndroid xmlの開発に取り組んでいます。Android:layout_gravity="center"を使用してコンポーネントを特定の位置に配置しました。

今日、Dialog like Activityに取り組んでいたときに、Android:gravity="center"に出会いました。私が見つけたのは、gravityを使用してchildを特定の位置に配置することでした。

それが何であるかの例を共有します、

Android:gravity = "center"

<LinearLayout 
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:gravity="center_vertical"
    Android:orientation="vertical" >
            <EditText
                Android:id="@+id/enterNumberEdit"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:layout_margin="10dp"
                Android:hint="Enter No." >

                <requestFocus />
            </EditText>
            </LinearLayout>

LinearLayoutの子を中央に揃えます。

Android:layout_gravity = "center"

<LinearLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_gravity="center"
    Android:orientation="vertical"
    Android:background="@drawable/dialog_background" >
</LinearLayout>

LinearLayout自体を中央に揃えます。

今私の質問は:

  1. これらの仮定に正しければ、gravityが子コンポーネント用であり、layout_gravityが親コンポーネント用であるかどうかです。
  2. layout_gravityではなくgravityを選択する場合。

これまでのところ、XMLについてこれだけの説明が機能していることがわかりました。それについてもっと良い説明を聞きたいのですが。どこかに間違っている場合はお知らせください

14
  1. はい、あなたの理解は正しいです。 layout_属性は、親ビューに指示を与えます。
  2. 一般に、ビューがその親の幅/高さ全体を占める場合、layout_gravityを指定する必要はなく、gravityの方が便利です。ビューがその親のディメンション全体を占めない場合は、目的の外観に応じてビューを整列させることができます。
11
wsanville

彼らの名前はあなたを助けるはずです:
Android:gravityは、使用されているViewのコンテンツの重力を設定します。
Android:layout_gravityは、親のViewまたはLayoutの重力を設定します。

詳細については このサイト をご覧ください

4
Ram kiran

Android:gravityは、使用されているビューのコンテンツの重力を設定します。

Android:layout_gravityは、親のビューまたはレイアウトの重力を設定します。

1
Rajeev N B