web-dev-qa-db-ja.com

Android Layout?

画面の中央にレイアウトを配置したい。

72
Vicky

ステップ#1:画面の中央にフルスクリーンRelativeLayoutを配置します。

ステップ#2:その子ビュー(RelativeLayoutの中央に配置したい子ビュー)にAndroid:layout_centerInParent="true"属性。

145
CommonsWare

XML属性Android:layout_gravity "を使用して、レイアウトを含む任意のビューにセンタリングを適用できます。おそらく、値に" center "を指定する必要があります。

このオプションの可能な値のリファレンスは、ここで見つけることができます: http://developer.Android.com/reference/Android/widget/LinearLayout.LayoutParams.html#attr_Android:layout_gravity

29
Eric Mill
<?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>
19
Pentium10

を使用してビューを中央に配置できました

Android:layout_centerHorizontal="true" 

そして

Android:layout_centerVertical="true" 

パラメータ。

15
Krishna Singh

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"
/>
6
Maksim Dmitriev

更新された回答: 制約レイアウト

Androidの傾向は現在、制約レイアウトを使用することです。他の答えが示すように、RelativeLayoutを使用してビューを中央に配置するのは十分簡単ですが、 ConstraintLayoutRelativeLayoutよりも強力で、より複雑なレイアウトに対応します。

ビューを中央に配置するには、ハンドルを親の4つの側面すべてにドラッグします。

enter image description here

4
Suragch

そのコードで機能する場合がありますが、両方のプロパティが必要な場合があります

Android:layout_gravity="center"
Android:layout_centerHorizontal="true"
2
N Islam

RelativeLayoutの中央に配置する要素にAndroid:layout_centerInParent = "true"を追加します

2

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'
}

enter image description here

1
live-love