[개발](24)
-
Compose - 개념
# Compose의 개념- Jetpack Compose : 안드로이드 UI를 선언적으로 구축하는 도구- 기존의 View 방식(XML + kotlin)에서 발생하는 다양한 문제에 대응 # View 방식의 문제점1) UI 개발에서의 높은 복잡성2) 상속 문제 # Compose의 해결 방식- 선언적인 UI 작성 방식- 상속 대신 합성(머지) 채택 / 유지보수성 향상 # 선언형(Declarative) UI- "어떻게 보여줄까?" 가 아니라 "무엇을 보여줄까"를 기술함- 구현 세부 사항은 시스템이나 프레임워크에 위임- Composable 함수라는 독립적 단위로 UI 구성 / 직관적 + 재사용성 高 # ViewModel 활용- Compose의 선언형 접근 방식에서 위젯은 비교적 Stateless 상태로, sette..
2024.07.30 -
240718_TIL
https://skycat1127.tistory.com/131 Android - RecyclerView에서 클릭 이벤트를 전달하기### RecyclerView에서 클릭 이벤트를 전달하기 ### #1. 인터페이스 방식#2. 람다 방식 # 인터페이스(Interface) 방식- 클래스가 구현해야 하는 메서드들의 집합을 정의하는 툴- 구현을 포함하지 않고 어skycat1127.tistory.comhttps://skycat1127.tistory.com/132 Android - RecyclerView에서의 ListAdapter 활용# RecyclerView.Adapter의 단점- item Delete할 때 notifyItemRemoved(position)을 반복하다 보면 오류가 자주 발생함 (내가 positio..
2024.07.18 -
Android - ViewType(뷰타입)
# 개념- 하나의 RecyclerView 안에 여러 Type의 viewHolder가 섞여있는 경우(광고 등) # 사용 방법1) 표시할 아이템들의 데이터 모델을 정의(보통 sealed class로 정의)2) getItemViewType(int position) 메서드를 오버라이드 - 각 아이템의 위치에 따라 해당 아이템의 뷰 타입 반환3) onCreateViewHolder(ViewGroup parent, int viewType) 메서드를 오버라이드 - 뷰 타입에 맞는 ViewHolder 생성4) onBindViewHolder(RecyclerView.ViewHolder, int position) 메서드를 오버라이드 - ViewHolder에 데이터 바인딩5) 각 뷰 타입에 해당하는 ViewHolder 클래스를..
2024.07.18 -
Android - ViewPager2 / TabLayout
# ViewPager2- 화면 슬라이드 기능 구현 시 사용- 다양한 페이지 전환을 제공- Fragment, View 등 다양한 페이지 간 전환 제공- View 사용 시 => RecyclerView.Adapter(View)- Fragment 사용 시 => FragmentStateAdapter(Fragment) # TabLayout- 상단에 탭을 표시하고 각 탬을 누를 때 ViewPager2의 페이지를 전환할 수 있는 인터페이스 제공 # 사용방법1) gradle에 추가implementation 'androidx.viewpager2:viewpager2:x.x.x' //x.x.x 최신 버전implementation 'com.google.android.material:material:x.x.x' //x.x.x..
2024.07.18 -
Android - RecyclerView에서의 ListAdapter 활용
# RecyclerView.Adapter의 단점- item Delete할 때 notifyItemRemoved(position)을 반복하다 보면 오류가 자주 발생함 (내가 position 1에 있는 아이템을 삭제하기 직전에 다른 사람이 같은 아이템을 삭제해버려서 내가 position 2에 있던 아이템을 삭제하게 되는 등)java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 0(offset:0).state:4 at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3382)- position 명시가 ..
2024.07.18 -
Android - RecyclerView에서 클릭 이벤트를 전달하기
### RecyclerView에서 클릭 이벤트를 전달하기 ### #1. 인터페이스 방식#2. 람다 방식 # 인터페이스(Interface) 방식- 클래스가 구현해야 하는 메서드들의 집합을 정의하는 툴- 구현을 포함하지 않고 어떤 동작을 해야 하는지 명시만 함- 여러 클래스에서 공통됭 동작을 강제하기 위해 사용- 구현할 메서드를 명시해 클래스가 특정 기능을 반드시 구현하게 함- 재사용성이 좋음 / 코드의 유연성과 확장성 향상// 인터페이스 구현interface OnItemClickListener { fun onItemClick(position: Int)}class MyAdapter(private val itemList: List) : RecyclerView.Adapter() { val it..
2024.07.18