<CoordinatorLayout>
<AppBarLayout>
<CollapsingToolbarLayout
app:layout_scrollFlags="scroll"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!--스크롤시 감추고 상단뷰-->
</CollapsingToolbarLayout>
</AppBarLayout>
<ConstraintLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!--가려지고 나면 최상단에 남을 뷰-->
<Button
android:id="@+id/btn_find_item"
android:text="아이템 위치로 이동"/>
<!--아이템 위치로 이동시켜줄 스크롤뷰-->
<NestedScrollView>
<ConstraintLayout>
<RecyclerView
android:orientation="vertical"/>
<TextView
android:text="NestedScrollView를 사용하여 Recycerview와 같이 노출"/>
</ConstraintLayout>
</NestedScrollView>
</ConstraintLayout>
</CoordinatorLayout>
스크롤뷰 안에서 카테고리탭 클릭시 탭이 최상단에 붙으며 하단의 리사이클러뷰의 카테고리 아이템 위치로 이동해야 하는 뷰를 만들어야했다.
위와 같은 구조로 레이아웃을 구성해주고, 버튼 클릭시 y값만큼 이동 시켜주면 된다.
상단의 AppBarLayout이 아직 최상단에 올라가지 않았다면, expanded를 false로 처리한다.
btnFindItem.setOnClickListener {
val itemPos = 0
val y = rvService.y + rvService.getChildAt(itemPos).y
nsvTest.smoothScrollTo(0, (y.toInt()))
ablService.setExpanded(false)
}
'안드로이드' 카테고리의 다른 글
[playstore] 앱 사용자 확인하기 (통계) (0) | 2024.01.12 |
---|---|
[andorid] TextView 줄바꿈 변경 (Activity 전체) (0) | 2023.12.13 |
[android] getSerializableExtra deprecated (0) | 2023.03.07 |
[android studio] configuration-cache 문제해결 (0) | 2023.03.02 |
[android studio] 스튜디오 업데이트 후 프로젝트 인식이 안되는 경우 (0) | 2023.01.19 |
댓글