데이터 결합 라이브러리 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 지원 라이브러리에는 아키텍처 구성요소를 사용하여 강력하고 테스트와 유지관리가 쉬운 앱 설계하기 아키텍처 개발을 더욱 간소화하기 위한 데이터 결합 라이브러리가 포함된 구성요소 살펴보겠습니다
- 양방향 데이터 바인딩
- 데이터 결합 라이브러리는 양방향 데이터 결합을 지원합니다. 다음에 사용되는 표기법은 이 유형의 결합은 속성의 데이터 변경사항을 수신하는 기능을 지원합니다. 해당 속성에 대한 사용자 업데이트를 동시에 수신 대기합니다.
추가 리소스
데이터 결합에 관한 자세한 내용은 다음을 참고하세요. 추가 리소스를 확인해 보세요.
샘플
- <ph type="x-smartling-placeholder"></ph> Android 데이터 결합 라이브러리 샘플
Codelab
- <ph type="x-smartling-placeholder"></ph> Android 데이터 결합 Codelab
블로그 게시물
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- 결합 어댑터{:#binding-adapters}
- 레이아웃 및 바인딩 수식
- 생성된 결합 클래스 {: #binding-classes}