1424

android:gravityおよび android:layout_gravityプロパティに次の値を設定できることはわかっています。

  1. center
  2. center_vertical
  3. center_horizontalなど

しかし、私はこれらの両方について混乱しています。

android:gravityとの使い方の違いは何android:layout_gravityですか?

4

21 に答える 21

1426

それらの名前はあなたを助けるはずです:

  • android:gravity使用されている のコンテンツ (つまり、そのサブビュー) の重力を設定Viewします。
  • android:layout_gravity親に対する Viewまたはの重力を設定します。Layout

そして例はここにあります。

于 2010-08-14T09:31:49.493 に答える
478

違い

android:layout_gravityビューの外部重力です。ビューが親の境界線に接する方向を指定します。

android:gravityそのビューの内部重力です。内容を揃える方向を指定します。

HTML/CSS の同等物

(Web 開発のバックグラウンドをお持ちの場合)

Android                 | CSS
————————————————————————+————————————
android:layout_gravity  | float
android:gravity         | text-align

覚えるのに役立つ簡単なトリック

layout-gravityLay-outside-gravity」とします。

于 2011-07-25T17:07:40.587 に答える
42

簡単な答え:android:gravityまたはを使用setGravity()して、コンテナーのすべての子ビューの重力を制御します。コンテナー内の個々のビューの重力を使用android:layout_gravityまたは制御します。setLayoutParams()

長い話:LinearLayoutまたはなどの線形レイアウト コンテナーで重力を制御するには、次のRadioGroup2 つの方法があります。

  1. LinearLayoutコンテナーのすべての子ビューの重力を制御するには(本で行ったように)、 android:gravity(not android:layout_gravity) をレイアウト XML ファイルで使用するかsetGravity()、コードでメソッドを使用します。

  2. コンテナー内の子ビューの重力を制御するには、android:layout_gravityXML 属性を使用します。コードでLinearLayout.LayoutParamsは、ビューの を取得し、その重力を設定する必要があります。以下は、水平方向のコンテナーでボタンを下に設定するコード例です。

    import android.widget.LinearLayout.LayoutParams;
    import android.view.Gravity;
    ...
    
    Button button = (Button) findViewById(R.id.MyButtonId);
    // need to cast to LinearLayout.LayoutParams to access the gravity field
    LayoutParams params = (LayoutParams)button.getLayoutParams(); 
    params.gravity = Gravity.BOTTOM;
    button.setLayoutParams(params);
    

水平LinearLayoutコンテナの場合、その子ビューの水平重力は次々に左揃えになり、変更できません。に設定android:layout_gravitycenter_horizontalても効果はありません。デフォルトの垂直重力は center (または center_vertical) で、上または下に変更できます。実際にはデフォルトlayout_gravity値は です-1が、Android では垂直方向に中央に配置されます。

水平線形コンテナー内の子ビューの水平位置を変更するには、子ビューlayout_weightの 、マージン、およびパディングを使用できます。

同様に、垂直方向のビュー グループ コンテナーの場合、その子ビューの垂直方向のグラビティは上下に配置され、変更できません。デフォルトの水平重力は中央 (またはcenter_horizontal) で、左または右に変更できます。

実際には、ボタンなどの子ビューにもandroid:gravityXML 属性と、setGravity()その子ビュー (その中のテキスト) を制御するメソッドがあります。は、このdeveloper.android.com エントリButton.setGravity(int)にリンクされています。

于 2011-07-30T20:01:51.717 に答える
38

私が収集できるものから、layout_gravityはその親内のそのビューの重力であり、重力はそのビュー内子の重力です。

これは正しいと思いますが、見つける最善の方法は、遊んでみることです。

于 2010-08-14T09:37:23.927 に答える
12

ビュー内のコンテンツの重力を設定する場合は "android:gravity" を使用し、このビュー (全体として) の重力を親ビューで設定する場合は"android:gravity"を使用します。 layout_gravity" .

于 2013-04-09T21:21:22.610 に答える
9

これを覚えておくための簡単なトリックは、重力が地球内の私たちに適用されることです。だから、ビューandroid:gravity内側です。

out in layout _gravityを覚えておいください。これは、ビューの外側android:layout_gravityを参照することを覚えておくのに役立ちます

于 2016-11-29T08:41:20.907 に答える
4

2つの基本的な違いは次のとおりです-

android:gravityは、ビューの子要素に使用されます。

android:layout_gravityは、親ビューに関してこの要素に使用されます。

于 2016-07-26T14:43:01.340 に答える
0
android:gravity

指定された位置 (割り当てられた領域) に対するビューのコンテンツを調整するために使用されます。に等しいandroid:gravity="left" 場合は何もしません。layout_width"wrap_content"

android:layout_gravity 

親またはレイアウトファイルに相対的なビュー自体に使用されます。

于 2017-01-02T12:13:14.313 に答える