일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 막내의막무가내 코틀린 안드로이드
- 부스트코스
- 막내의막무가내 안드로이드
- 막내의막무가내 알고리즘
- 막내의막무가내 목표 및 회고
- 2022년 6월 일상
- 안드로이드 sunflower
- 막내의막무가내
- 막내의 막무가내
- 프래그먼트
- 주엽역 생활맥주
- 막내의막무가내 플러터
- 막내의막무가내 프로그래밍
- 주택가 잠실새내
- 막내의막무가내 rxjava
- Fragment
- 안드로이드
- 막내의막무가내 SQL
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 안드로이드 코틀린
- 막내의막무가내 플러터 flutter
- 막내의막무가내 코틀린
- 막내의 막무가내 알고리즘
- 막내의막무가내 일상
- 프로그래머스 알고리즘
- flutter network call
- 막내의막무가내 안드로이드 에러 해결
- 막무가내
- 부스트코스에이스
- 안드로이드 Sunflower 스터디
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[안드로이드] 코틀린 @BindingAdapter 매개변수 두 개 이상할 경우 예시 본문
[2021-04-13 업데이트]
https://developer.android.com/topic/libraries/data-binding/binding-adapters
결합 어댑터 | Android 개발자 | Android Developers
결합 어댑터는 적절한 프레임워크를 호출하여 값을 설정하는 작업을 담당합니다. 한 가지 예로 setText() 메서드를 호출하는 것과 같이 속성 값을 설정하는 작업을 들 수 있습니다. 또 다른 예로는 setOnClickListener() 메서드를 호출하는 것과 같이 이벤트 리스너를 설정하는 작업이 있습니다. 데이터 결합 라이브러리를 사용하면 값을 설정하기 위해 호출되는 메서드를 지정하고 고유한 결합 로직을 제공하며 어댑터를 사용함으로써 반환된 객체의 유형을
developer.android.com
https://developer.android.com/topic/libraries/data-binding/binding-adapters?hl=ko
결합 어댑터 | Android 개발자 | Android Developers
결합 어댑터는 적절한 프레임워크를 호출하여 값을 설정하는 작업을 담당합니다. 한 가지 예로 setText() 메서드를 호출하는 것과 같이 속성 값을 설정하는 작업을 들 수 있습니다. 또 다른 예로는 setOnClickListener() 메서드를 호출하는 것과 같이 이벤트 리스너를 설정하는 작업이 있습니다. 데이터 결합 라이브러리를 사용하면 값을 설정하기 위해 호출되는 메서드를 지정하고 고유한 결합 로직을 제공하며 어댑터를 사용함으로써 반환된 객체의 유형을
developer.android.com
기록용으로 남깁니다.
리사이클러뷰에서 사용한 경우 입니다. 더 불러오기 인지에 따른 분기처리 용으로 사용했습니다. (나중에 loadMore 가 필요 없는 로직으로도 되서 이후에는 그냥 없에주긴 했습니다.)
@BindingAdapter("setItems")
fun RecyclerView.setAdapterItems(items: List<Movie>?) {
with((adapter as MovieAdapter)) {
this.clear()
items?.let { this.addItems(it) }
}
}
예시
@BindingAdapter("setItems", "loadMore")
fun RecyclerView.setAdapterItems(items: List<Movie>?, loadMore: Boolean) {
with((adapter as MovieAdapter)) {
if (!loadMore) {
this.clear()
}
this.clear()
items?.let { this.addItems(it) }
}
}
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_movies"
android:layout_width="0dp"
android:layout_height="0dp"
android:clipToPadding="false"
android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/guideline"
bind:endlessScroll="@{vm}"
bind:loadMore="@{vm.loadMore}"
bind:setItems="@{vm.movieList}" />
bind:endlessScroll 은 별개지만 무한스크롤 용으로 사용했었습니다.
@BindingAdapter("endlessScroll")
fun RecyclerView.setEndlessScroll(
viewModel: MovieSearchViewModel
) {
val scrollListener =
object : EndlessRecyclerViewScrollListener(layoutManager as LinearLayoutManager) {
override fun onLoadMore(page: Int, totalItemsCount: Int, view: RecyclerView?) {
viewModel.requestPagingMovie(totalItemsCount + 1)
}
}
this.addOnScrollListener(scrollListener)
}
이 밖에 다른 BindingAdapter 예제를 다음 링크에 포스팅 해놨으니 참고해주세요 :)
youngest-programming.tistory.com/473
[안드로이드] 데이터바인딩 어댑터 (DatabindingAdapter) 및 확장함수 모음 정리
이전 프로젝트에서 본인이 사용했던 바인딩 어댑터나 확장함수를 막무가내로 일단 기록해놓는 공간입니다. [2021-01-07] 일단 사용했던 것들 중 몇개만 기록해 놓습니다. [확장함수] 시간변환 관련
youngest-programming.tistory.com
댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!!
'안드로이드 > 코틀린 & 아키텍처 & Recent' 카테고리의 다른 글
[안드로이드] 코틀린 list 를 자바의 vararg 로 받을 수 있게하는 방법 (kotlin list to vararg) (0) | 2020.04.28 |
---|---|
[안드로이드] DI(Dependency Injection) 개념 및 KOIN 참고할 사이 (0) | 2020.04.15 |
[안드로이드] 안드로이드 아키텍처 스터디 총 정리(MVC,MVVM, AAC ViewModel, LiveData, Koin, Dagger2, RxJava2, Multi Module) Kotlin (2) | 2020.03.15 |
[안드로이드] 코틀린 Sharedpreferences 예제 코드 기록 (0) | 2020.03.13 |
[안드로이드] 코틀린 리사이클러뷰 무한 스크롤 구현 (0) | 2020.03.13 |