android:gravityおよび android:layout_gravityプロパティに次の値を設定できることはわかっています。
centercenter_verticalcenter_horizontalなど
しかし、私はこれらの両方について混乱しています。
android:gravityとの使い方の違いは何android:layout_gravityですか?
android:gravityおよび android:layout_gravityプロパティに次の値を設定できることはわかっています。
centercenter_verticalcenter_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-gravityLay-outside-gravity」とします。
簡単な答え:android:gravityまたはを使用setGravity()して、コンテナーのすべての子ビューの重力を制御します。コンテナー内の個々のビューの重力を使用android:layout_gravityまたは制御します。setLayoutParams()
長い話:LinearLayoutまたはなどの線形レイアウト コンテナーで重力を制御するには、次のRadioGroup2 つの方法があります。
LinearLayoutコンテナーのすべての子ビューの重力を制御するには(本で行ったように)、 android:gravity(not android:layout_gravity) をレイアウト XML ファイルで使用するかsetGravity()、コードでメソッドを使用します。
コンテナー内の子ビューの重力を制御するには、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_gravityしcenter_horizontalても効果はありません。デフォルトの垂直重力は center (または center_vertical) で、上または下に変更できます。実際にはデフォルトlayout_gravity値は です-1が、Android では垂直方向に中央に配置されます。
水平線形コンテナー内の子ビューの水平位置を変更するには、子ビューlayout_weightの 、マージン、およびパディングを使用できます。
同様に、垂直方向のビュー グループ コンテナーの場合、その子ビューの垂直方向のグラビティは上下に配置され、変更できません。デフォルトの水平重力は中央 (またはcenter_horizontal) で、左または右に変更できます。
実際には、ボタンなどの子ビューにもandroid:gravityXML 属性と、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
親またはレイアウトファイルに相対的なビュー自体に使用されます。