데이터 결합 라이브러리 Android Jetpack의 구성요소

데이터 결합 라이브러리는 UI를 결합하는 데 사용할 수 있는 지원 라이브러리입니다. 선언적 요소를 사용하여 레이아웃의 구성요소를 앱의 데이터 소스에 형식을 사용하는 것이 더 좋습니다.

레이아웃은 UI 프레임워크를 호출하는 코드가 있는 활동에서 정의되는 경우가 많음 메서드를 참조하세요. 예를 들어 아래 코드는 findViewById()를 호출하여 TextView 위젯을 찾아userName viewModel 변수:

Kotlin

findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

자바

TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());

다음 예에서는 데이터 결합 라이브러리를 사용하여 텍스트를 할당하는 방법을 보여줍니다. 추가할 수 있습니다. 이렇게 하면 사용할 수 있습니다. 할당에 @{} 문법이 사용됩니다. 표현식:

<TextView
    android:text="@{viewmodel.userName}" />

레이아웃 파일에서 구성요소를 결합하면 더욱 간단하고 쉽게 관리할 수 있습니다. 또한 앱 성능을 개선하고 메모리 누수 및 null 포인터를 방지하세요. 있습니다.

데이터 결합 라이브러리 사용

다음 페이지에서 데이터 결합 라이브러리를 사용하는 방법을 알아보세요. Android 앱

시작하기
개발 환경에서 데이터를 사용하도록 준비하는 방법 알아보기 Android 스튜디오의 데이터 결합 코드 지원을 포함한 결합 라이브러리

레이아웃 및 바인딩 표현식

표현식 언어를 사용하면 변수를 레이아웃의 뷰에 추가합니다. 데이터 결합 라이브러리는 자동으로 레이아웃의 뷰를 데이터와 결합하는 데 필요한 클래스를 생성 객체입니다. 이 라이브러리는 가져오기, 변수 및 포함되어 있습니다.

라이브러리의 이러한 기능은 기존 레이아웃과 원활하게 공존합니다. 예를 들어 표현식에 사용할 수 있는 결합 변수는 UI 레이아웃 루트 요소의 동위 요소인 data 요소 내부 두 요소는 모두 다음과 같이 layout 태그로 래핑됩니다. 예:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    <data>
        <variable
            name="viewmodel"
            type="com.myapp.data.ViewModel" />
    </data>
    <ConstraintLayout... /> <!-- UI layout's root element -->
</layout>

식별 가능한 데이터 객체 작업
데이터 결합 라이브러리는 데이터를 쉽게 관찰할 수 있는 클래스와 메서드를 제공합니다. 확인할 수 있습니다 UI를 새로고침하는 것에 대해 걱정할 필요가 없습니다. 변경할 수 있습니다 변수나 해당 변수가 속성을 살펴보겠습니다. 라이브러리를 사용하면 객체, 필드 또는 50%에 불과했습니다.
생성된 바인딩 클래스
데이터 결합 라이브러리는 사용할 수 있습니다. 이 페이지에서는 생성된 바인딩 클래스를 보여줍니다.
결합 어댑터
모든 레이아웃 표현식에는 해당 속성 또는 리스너를 설정하는 데 필요한 프레임워크 호출 대상 예를 들어 결합 어댑터는 setText() 메서드 호출을 처리할 수 있습니다. 를 사용하여 텍스트 속성을 설정하거나 setOnClickListener() 메서드를 호출하여 리스너입니다. 가장 일반적인 결합 어댑터는 이 페이지의 예시에 사용된 android:text 속성용 어댑터 android.databinding.adapters 패키지에서 사용할 수 있습니다. 일반적인 결합 어댑터 목록은 다음을 참고하세요. 어댑터가 있습니다. 다음 예와 같이 맞춤 어댑터를 만들 수도 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

Kotlin

@BindingAdapter("app:goneUnless")
fun goneUnless(view: View, visible: Boolean) {
    view.visibility = if (visible) View.VISIBLE else View.GONE
}

자바

@BindingAdapter("app:goneUnless")
public static void goneUnless(View view, Boolean visible) {
    view.visibility = visible ? View.VISIBLE : View.GONE;
}

아키텍처 구성요소에 레이아웃 뷰 연결
Android 지원 라이브러리에는 아키텍처 구성요소를 사용하여 강력하고 테스트와 유지관리가 쉬운 앱 설계하기 아키텍처 개발을 더욱 간소화하기 위한 데이터 결합 라이브러리가 포함된 구성요소 살펴보겠습니다
양방향 데이터 바인딩
데이터 결합 라이브러리는 양방향 데이터 결합을 지원합니다. 다음에 사용되는 표기법은 이 유형의 결합은 속성의 데이터 변경사항을 수신하는 기능을 지원합니다. 해당 속성에 대한 사용자 업데이트를 동시에 수신 대기합니다.

추가 리소스

데이터 결합에 관한 자세한 내용은 다음을 참고하세요. 추가 리소스를 확인해 보세요.

샘플

Codelab

블로그 게시물