Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- BOJ
- Algorithm
- room
- hilt
- CoordinatorLayout
- recyclerview
- AppBarLayout
- 백준
- Coroutine
- Navigation
- LiveData
- DataBinding
- onLayout
- kotlin
- CustomView
- 안드로이드
- CollapsingToolbarLayout
- notification
- activity
- View
- 알고리즘
- 코틀린
- onMeasure
- Behavior
- ViewModel
- lifecycle
- sqlite
- HTTP
- Android
- 알림
Archives
- Today
- Total
개발일지
Android in A..Z - Databinding (수식) 본문
Databinding에서 제공하는 수식으로 XML에서 간단한 수식을 처리하여 Java나 Kotlin의 코드를 줄일 수 있고, 코드의 유지보수성을 높일 수 있습니다.
import
Java에서 import와 비슷한 의미로 변수를 선언할 때 사용한다.
<data>
<import type="android.view.View" />
<variable
name="movie"
type="com.taetae98.databinding.data.Movie" />
<variable
name="onClick"
type="View.OnClickListener" />
</data>
bind
include를 사용하여 다른 layout을 포함할 때 다른 layout에 데이터를 결합하는 방법.
=> merge에서는 사용할 수 없다.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
<variable name="user" type="com.example.User"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/name"
bind:user="@{user}"/>
<include layout="@layout/contact"
bind:user="@{user}"/>
</LinearLayout>
</layout>
default
데이터를 결합하기 전에 표시할 값을 선택한다.
=> Databinding을 사용하면 Design을 미리 볼 수 없는데 Design을 미리 볼 때도 사용할 수 있다.
<TextView
android:id="@+id/title"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{movie.title, default=Title}"
android:textColor="@color/white"
android:textSize="30sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@id/poster"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
문자열 리터럴
Databinding에서 문자열을 사용할 때
android:text='@{map["firstName"]}'
android:text="@{map[`firstName`]}"
기타
기본적인 산술 연산자, 논리 연산자, 비교 연산자를 제공하고 함수도 호출할 수 있다.
참고 : developer.android.com/topic/libraries/data-binding/expressions?hl=ko
Git (예제코드)
github.com/KangTaeJong98/Example/tree/main/Android/Databinding
'Android (안드로이드) > Databinding' 카테고리의 다른 글
Android in A..Z - Databinding (문자열 서식) (0) | 2021.05.03 |
---|---|
Android in A..Z - DataBinding (양방향 데이터 바인딩) (0) | 2021.04.21 |
Android in A..Z - Databinding (BindingAdapter) (0) | 2021.01.21 |
Android in A..Z - Databinding (바인딩 객체) (0) | 2021.01.21 |
Android in A..Z - Databinding (기본) (0) | 2021.01.21 |
Comments