android:gravity와 android:layout_gravity의 차이

20847 단어 안드로이드Kotlin

android:layout_gravity


android:layout_gravity 는 「레이아웃내에서의 위치」를 지정할 때 사용합니다.

레이아웃의 각 위젯 (레이아웃)에 대해 개별적으로 설정합니다.
  • 부모 레이아웃 (파란색 배경) -> LinearLayout
  • Button01 -> android:layout_gravity="end" ( LinearLayout 오른쪽에 배치)
  • Button02 -> android:gravity="end" (텍스트가 오른쪽으로 이동(후술))
  • Text001 -> android:layout_gravity="end" (.
  • Text002 -> android:layout_width="match_parent" ( android:layout_gravity="end" 오른쪽에 배치)
  • 아이 레이아웃 (흰색 배경) -> LinearLayout ( android:layout_gravity="center" 의 중앙에 배치)



  • 잡지만, 위의 레이아웃 파일의 내용입니다.
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/layout_gravity_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="android:layout_gravity"
            android:textSize="30sp"
            android:textStyle="bold"
            app:layout_constraintTop_toTopOf="parent" />
    
        <!-- 親レイアウト(水色背景) -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:layout_marginTop="10dp"
            android:background="#bbdefb"
            android:orientation="vertical"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/layout_gravity_title">
    
            <!-- Button01 -->
            <Button
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:layout_margin="10dp"
                android:backgroundTint="#f06292"
                android:text="Button01" />
    
            <!-- Button02 -->
            <Button
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:backgroundTint="#f06292"
                android:gravity="end"
                android:text="Button02" />
    
            <!-- Text001 -->
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:text="Text001"
                android:textColor="#f06292"
                android:textSize="20sp"
                android:textStyle="bold" />
    
            <!-- Text002 -->
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:text="Text002"
                android:textColor="#f06292"
                android:textSize="20sp"
                android:textStyle="bold" />
    
            <!-- 子レイアウト(白背景) -->
            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="200dp"
                android:layout_height="60dp"
                android:layout_gravity="center"
                android:background="@android:color/white">
    
            </androidx.constraintlayout.widget.ConstraintLayout>
    
        </LinearLayout>
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    

    LinearLayout


    android:gravity 는 「위젯(레이아웃) 내부에 있는 부품의 위치」를 지정할 때 사용합니다.

    부품이란, 「버튼의 텍스트」나 「레이아웃내의 위젯(레이아웃)」을 가리키고 있습니다.
  • Button01 -> android:gravity (버튼의 텍스트를 오른쪽에 배치)
  • Text001 -> android:gravity="end" ( android:gravity="end"를 지정하면 TextView가 오른쪽으로 이동)
  • 자식 레이아웃 (흰색 배경) -> android:layout_width="match_parent" (레이아웃 내부 위젯을 모두 아래에 배치)


  • <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/layout_gravity_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="android:gravity"
            android:textSize="30sp"
            android:textStyle="bold"
            app:layout_constraintTop_toTopOf="parent" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:layout_marginTop="10dp"
            android:background="#bbdefb"
            android:orientation="vertical"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/layout_gravity_title">
    
            <!-- Button01 -->
            <Button
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:backgroundTint="#f06292"
                android:gravity="end"
                android:text="Button01" />
    
            <!-- Text001 -->
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="end"
                android:text="Text001"
                android:textColor="#f06292"
                android:textSize="20sp"
                android:textStyle="bold" />
    
            <!-- 子レイアウト(白背景) -->
            <LinearLayout
                android:layout_width="200dp"
                android:layout_height="60dp"
                android:background="@android:color/white"
                android:gravity="bottom">
    
                <!-- Text002 -->
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text002"
                    android:textColor="#f06292"
                    android:textSize="20sp"
                    android:textStyle="bold" />
    
                <!-- Text003 -->
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Text003"
                    android:textColor="#f06292"
                    android:textSize="20sp"
                    android:textStyle="bold" />
    
            </LinearLayout>
    
        </LinearLayout>
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    android:gravity="bottom" , android:layout_gravity 로 설정할 수 있는 값은 여기 에서 확인할 수 있습니다.

    여러 값을 설정하는 방법



    오른쪽 중앙과 같이 여러 값을 지정할 때 android:gravity 를 사용합니다.
  • Button01 -> | (Button의 텍스트를 「우측 중앙」에 배치)
  • Text001 -> android:gravity="end|center" (흰색 배경 레이아웃의 「우측 중앙」에 배치)
  • Text002 -> android:layout_gravity="end|center" (흰색 배경 레이아웃의 「중앙 아래」에 배치)


  • <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/layout_gravity_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="複数の値を設定"
            android:textSize="30sp"
            android:textStyle="bold"
            app:layout_constraintTop_toTopOf="parent" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="170dp"
            android:layout_marginTop="10dp"
            android:background="#bbdefb"
            android:orientation="vertical"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/layout_gravity_title">
    
            <!-- Button01 -->
            <Button
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:backgroundTint="#f06292"
                android:gravity="end|center"
                android:text="Button01" />
    
            <FrameLayout
                android:layout_width="200dp"
                android:layout_height="80dp"
                android:layout_gravity="center"
                android:background="@android:color/white">
    
                <!-- Text001 -->
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="end|center"
                    android:text="Text001"
                    android:textColor="#f06292"
                    android:textSize="20sp"
                    android:textStyle="bold" />
    
                <!-- Text002 -->
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center|bottom"
                    android:text="Text002"
                    android:textColor="#f06292"
                    android:textSize="20sp"
                    android:textStyle="bold" />
    
            </FrameLayout>
    
        </LinearLayout>
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    

    좋은 웹페이지 즐겨찾기