수색…


소개

ConstraintLayout 은 위젯을 유연하게 배치하고 크기를 지정할 수있는 ViewGroup 입니다. Android 2.3 (API 레벨 9) 이상과 호환됩니다.

평면 뷰 계층 구조로 크고 복잡한 레이아웃을 생성 할 수 있습니다. RelativeLayout 과 비슷하지만 형제보기와 상위 레이아웃 간의 관계에 따라 모든보기가 배치되지만 RelativeLayout 보다 유연하고 Android Studio의 레이아웃 편집기에서 사용하기가 더 쉽습니다.

통사론

  • ConstraintLayout

    • public void addView (View 자식, int 인덱스, ViewGroup.LayoutParams params)

    • Public ConstraintLayout.LayoutParams generateLayoutParams (AttributeSet attrs)

    • public void onViewAdded (뷰보기)

    • public void onViewRemoved (뷰보기)

    • public void removeView (뷰 뷰)

    • public void requestLayout ()

    • 보호 된 부울 값 checkLayoutParams (ViewGroup.LayoutParams params)

    • ConstraintLayout.LayoutParams generateDefaultLayoutParams ()를 보호합니다.

    • ViewGroup.LayoutParams generateLayoutParams (ViewGroup.LayoutParams params)를 보호합니다.

    • protected void onLayout (boolean changed, int left, int top, int right, int bottom) 지정된 보더를 돌려줍니다.

    • 보호 된 void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

  • ConstraintLayout.LayoutParams

    • 공개 무효의 resolveLayoutDirection (int layoutDirection)

    • public void validate ()

    • 보호 된 void setBaseAttributes (TypedArray a, int widthAttr, int heightAttr)

매개 변수

매개 변수 세부
어린이 레이아웃에 추가 할 View
색인 레이아웃 계층의 View 색인
매개 변수 ViewLayoutParams
attrs LayoutParams 를 정의하는 AttributeSet
전망 추가 또는 삭제 된 View
변경된 View 크기 또는 위치가 변경되었는지 여부를 나타냅니다.
왼쪽 부모 View 기준으로 한 왼쪽의 위치
상단 부모의 View 기준으로 한 위의 위치.
권리 상위 View 대한 올바른 위치
바닥 부모를 기준으로 하단 위치 View
widthMeasureSpec 부모 View 에 의해 부과 된 수평 공간 요구 사항
heightMeasureSpec 부모 View 에 의해 부과 된 수직 공간 요구 사항
layoutDirection -
에이 -
widthAttr -
heightAttr -

비고

Google IO 2016에서 Google은 ConstraintLayout이라는 새로운 Android 레이아웃을 발표했습니다.
현재이 레이아웃은 베타 버전 이므로주의를 기울여야합니다.

제약 레이아웃에 대한 자세한 내용 :

https://codelabs.developers.google.com/codelabs/constraint-layout/index.html

프로젝트에 ConstraintLayout 추가하기

ConstraintLayout을 사용하려면 Android Studio 버전 2.2 이상이 필요하며 버전 32 이상의 Android 지원 리포지토리가 있어야합니다.

  1. Constraint Layout 라이브러리를 build.gradle 파일의 종속 항목으로 추가하십시오.
dependencies {
   compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
  1. 프로젝트 동기화

프로젝트에 새로운 구속 조건 레이아웃을 추가하려면 :

  1. 모듈의 레이아웃 디렉토리를 마우스 오른쪽 버튼으로 클릭 한 다음 New > XML > Layout XML. 을 클릭하십시오 New > XML > Layout XML.
  2. 레이아웃의 이름 을 입력하고 루트 태그에 "android.support.constraint.ConstraintLayout" 을 입력하십시오.
  3. 마침을 클릭하십시오.

그렇지 않으면 레이아웃 파일을 추가하기 만하면됩니다.

<?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">

</android.support.constraint.ConstraintLayout>

쇠사슬

ConstraintLayout alpha 9부터 체인 을 사용할 수 있습니다. 체인은 내부 뷰의 집합 ConstraintLayout 제약와 B에 연결된, 즉, 그들 사이의 양방향 방식으로 접속되고, B는 또 다른 제약 조건 (A)에 접속된다.

예:

<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">

    <!-- this view is linked to the bottomTextView --> 
    <TextView
        android:id="@+id/topTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        app:layout_constraintBottom_toTopOf="@+id/bottomTextView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_chainPacked="true"/>

    <!-- this view is linked to the topTextView at the same time --> 
    <TextView
        android:id="@+id/bottomTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bottom\nMkay"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/topTextView"/>

</android.support.constraint.ConstraintLayout>

이 예에서는 두 개의 뷰가 서로 아래에 배치되고 두 뷰가 수직으로 가운데에 배치됩니다. 체인의 편향 을 조정하여 이러한 뷰의 수직 위치를 변경할 수 있습니다. 체인의 첫 번째 요소에 다음 코드를 추가합니다.

app:layout_constraintVertical_bias="0.2"

수직 체인에서 첫 번째 요소는 최상위 뷰이며, 수평 체인에서는 맨 왼쪽 뷰입니다. 첫 번째 요소는 전체 체인의 동작을 정의합니다.

체인은 새로운 기능이며 자주 업데이트됩니다. 다음 은 공식 Android 안드로이드 설명서입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow