Android

Android studio_ 0-3. Guideline, Barrier, ViewGroup

아이른 2024. 4. 30. 12:13
  • 레이아웃을 사용하다보면 ConstraintLayout 안에 ConstraintLayout 안에 ConstraintLayout... 등 중첩으로 사용할 때 단일객체로 만들기 위해 사용하는 방법

이미지 = 네이버웹툰_대학일기

 

 

1. Guideline

  • android: orientation = "가로/세로 방향 지정"  
  • app: layout_constraintGuide_begin = "왼쪽/위 여벽"
  • app: layout_constraintGuide_end = "오른쪽/아래 여벽"
  • app: layout_constraintGuide_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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/glVerStart"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="15dp" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/glHorStart"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:orientation="horizontal"
        app:layout_constraintGuide_begin="15dp" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/glVerEnd"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:orientation="vertical"
        app:layout_constraintGuide_end="15dp" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/glHorEnd"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:orientation="horizontal"
        app:layout_constraintGuide_end="20dp" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/glVerCenter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.5" />

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginBottom="15dp"
        app:layout_constraintBottom_toTopOf="@id/btn_checkImage"
        app:layout_constraintEnd_toEndOf="@id/glVerEnd"
        app:layout_constraintStart_toStartOf="@id/glVerStart"
        app:layout_constraintTop_toTopOf="@id/glHorStart" />

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/btn_checkImage"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="10dp"
        android:background="@drawable/buttonshape"
        android:text="이미지 검색"
        android:textSize="18sp"
        android:textStyle="bold"
        android:typeface="serif"
        app:layout_constraintBottom_toBottomOf="@id/glHorEnd"
        app:layout_constraintEnd_toEndOf="@id/glVerCenter"
        app:layout_constraintStart_toStartOf="@id/glVerStart" />

    <androidx.appcompat.widget.AppCompatButton
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:background="@drawable/buttonshape"
        android:text="내 보관함"
        android:textSize="18sp"
        android:textStyle="bold"
        android:typeface="serif"
        app:layout_constraintBottom_toBottomOf="@id/glHorEnd"
        app:layout_constraintEnd_toEndOf="@id/glVerEnd"
        app:layout_constraintStart_toStartOf="@id/glVerCenter" />


</androidx.constraintlayout.widget.ConstraintLayout>

 

2. Barrier

 
  • app: barrierDirection = "베리어 방향 지정"
  • app: constraint_referenced_ids = "쉼표로 뷰를 참조"
  • app: barrierAllowsGoneWidgets = "참조하고 있던 뷰를 GONE될 때의 동작 "

 

3. Group

  • android: visibility = "뷰를 화면에 보여줌"
  • app: constraint_referenced_ids = "쉼표로 뷰를 참조"

 


Constraint Layout – Part2. 뷰의 배치를 돕는 가상 오브젝트 | 찰스의 안드로이드 (charlezz.com)