画面の中央にレイアウトを配置したい。
ステップ#1:画面の中央にフルスクリーンRelativeLayout
を配置します。
ステップ#2:その子ビュー(RelativeLayout
の中央に配置したい子ビュー)にAndroid:layout_centerInParent="true"
属性。
XML属性Android:layout_gravity "を使用して、レイアウトを含む任意のビューにセンタリングを適用できます。おそらく、値に" center "を指定する必要があります。
このオプションの可能な値のリファレンスは、ここで見つけることができます: http://developer.Android.com/reference/Android/widget/LinearLayout.LayoutParams.html#attr_Android:layout_gravity
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/relLayout1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center">
<ProgressBar
Android:id="@+id/ProgressBar01"
Android:layout_centerInParent="true"
Android:layout_width="wrap_content"
Android:layout_gravity="center"
Android:layout_height="wrap_content"></ProgressBar>
<TextView
Android:layout_below="@id/ProgressBar01"
Android:text="@string/please_wait_authenticating"
Android:id="@+id/txtText"
Android:paddingTop="30px"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"></TextView>
</RelativeLayout>
を使用してビューを中央に配置できました
Android:layout_centerHorizontal="true"
そして
Android:layout_centerVertical="true"
パラメータ。
1つのビューを中央に配置する場合は、これを使用します。この場合、TextViewはlayout_heightがmatch_parentであるため、XMLの一番下のビューでなければなりません。
<TextView
Android:id="@+id/tv_to_be_centered"
Android:layout_height="match_parent"
Android:layout_width="match_parent"
Android:gravity="center"
Android:text="Some text"
/>
Androidの傾向は現在、制約レイアウトを使用することです。他の答えが示すように、RelativeLayout
を使用してビューを中央に配置するのは十分簡単ですが、 ConstraintLayout
はRelativeLayout
よりも強力で、より複雑なレイアウトに対応します。
ビューを中央に配置するには、ハンドルを親の4つの側面すべてにドラッグします。
そのコードで機能する場合がありますが、両方のプロパティが必要な場合があります
Android:layout_gravity="center"
Android:layout_centerHorizontal="true"
RelativeLayoutの中央に配置する要素にAndroid:layout_centerInParent = "true"を追加します
ConstraintLayoutを使用します。親画面の幅と高さに応じてビューを中央に配置する例を次に示します。
<?xml version="1.0" encoding="utf-8"?>
<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:background="#FF00FF"
Android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHeight_percent=".6"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent=".4"></LinearLayout>
</Android.support.constraint.ConstraintLayout>
ConstraintLayoutの最新バージョンを取得するには、gradleを変更する必要がある場合があります。
dependencies {
...
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
}