android:gravity
および android:layout_gravity
プロパティに次の値を設定できることはわかっています。
center
center_vertical
center_horizontal
など
しかし、私はこれらの両方について混乱しています。
android:gravity
との使い方の違いは何android:layout_gravity
ですか?
android:gravity
および android:layout_gravity
プロパティに次の値を設定できることはわかっています。
center
center_vertical
center_horizontal
などしかし、私はこれらの両方について混乱しています。
android:gravity
との使い方の違いは何android:layout_gravity
ですか?
それらの名前はあなたを助けるはずです:
android:gravity
使用されている のコンテンツ (つまり、そのサブビュー) の重力を設定View
します。 android:layout_gravity
親に対する View
またはの重力を設定します。Layout
そして例はここにあります。
android:layout_gravity
ビューの外部重力です。ビューが親の境界線に接する方向を指定します。
android:gravity
そのビューの内部重力です。内容を揃える方向を指定します。
(Web 開発のバックグラウンドをお持ちの場合)
Android | CSS
————————————————————————+————————————
android:layout_gravity | float
android:gravity | text-align
「layout-gravity
Lay-outside-gravity」とします。
簡単な答え:android:gravity
またはを使用setGravity()
して、コンテナーのすべての子ビューの重力を制御します。コンテナー内の個々のビューの重力を使用android:layout_gravity
または制御します。setLayoutParams()
長い話:LinearLayout
またはなどの線形レイアウト コンテナーで重力を制御するには、次のRadioGroup
2 つの方法があります。
LinearLayout
コンテナーのすべての子ビューの重力を制御するには(本で行ったように)、 android:gravity
(not android:layout_gravity
) をレイアウト XML ファイルで使用するかsetGravity()
、コードでメソッドを使用します。
コンテナー内の子ビューの重力を制御するには、android:layout_gravity
XML 属性を使用します。コードで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_gravity
しcenter_horizontal
ても効果はありません。デフォルトの垂直重力は center (または center_vertical) で、上または下に変更できます。実際にはデフォルトlayout_gravity
値は です-1
が、Android では垂直方向に中央に配置されます。
水平線形コンテナー内の子ビューの水平位置を変更するには、子ビューlayout_weight
の 、マージン、およびパディングを使用できます。
同様に、垂直方向のビュー グループ コンテナーの場合、その子ビューの垂直方向のグラビティは上下に配置され、変更できません。デフォルトの水平重力は中央 (またはcenter_horizontal
) で、左または右に変更できます。
実際には、ボタンなどの子ビューにもandroid:gravity
XML 属性と、setGravity()
その子ビュー (その中のテキスト) を制御するメソッドがあります。は、このdeveloper.android.com エントリButton.setGravity(int)
にリンクされています。
私が収集できるものから、layout_gravityはその親内のそのビューの重力であり、重力はそのビュー内の子の重力です。
これは正しいと思いますが、見つける最善の方法は、遊んでみることです。
ビュー内のコンテンツの重力を設定する場合は "android:gravity" を使用し、このビュー (全体として) の重力を親ビューで設定する場合は"android:gravity"を使用します。 layout_gravity" .
これを覚えておくための簡単なトリックは、重力が地球内の私たちに適用されることです。だから、ビューandroid:gravity
の内側です。
out in layout _gravityを覚えておいてください。これは、ビューの外側android:layout_gravity
を参照することを覚えておくのに役立ちます
2つの基本的な違いは次のとおりです-
android:gravityは、ビューの子要素に使用されます。
android:layout_gravityは、親ビューに関してこの要素に使用されます。
android:gravity
指定された位置 (割り当てられた領域) に対するビューのコンテンツを調整するために使用されます。に等しいandroid:gravity="left"
場合は何もしません。layout_width
"wrap_content"
android:layout_gravity
親またはレイアウトファイルに相対的なビュー自体に使用されます。