Simple&Natural
BottomNavigationView + Hiding On Scroll 본문
728x90
구글에서 찾아보면 대부분 소스코드 상에서 동적으로 변경하는 자료들이 많이 나온다.
xml 상에서 적용하는 코드를 원했는데 대표적으로 나오는 솔루션들이 잘 먹히지가 않아서
이것저것 바꾸어보며 동작 조건을 알아보았다.
액티비티나 프래그먼트 상의 소스코드는 별로 다를 게 없고 xml을 조건에 맞게 작성하는 것이 중요하다.
- 무슨 이유인지는 모르겠으나 ListView는 Hide가 동작하지 않으니 유의해야 한다.
- 최상위 레이아웃은 반드시 CoordinatorLayout으로 선언해주어야 한다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:menu="@menu/bottom_navigation_menu"
app:layout_behavior="app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".HomeFragment">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.recyclerview.widget.RecyclerView>
</FrameLayout>
fragment_home.xml
728x90
'안드로이드(Android) > 기타' 카테고리의 다른 글
[Android] Retrofit Field 사용 시 Encoding 문제 (0) | 2020.10.07 |
---|---|
[Android] Retrofit + Moshi 를 이용한 Json 데이터 받아오기 (0) | 2020.10.07 |
안드로이드에서 Coroutine과 Retrofit 및 Room을 함께 사용 시 주의사항 (1) | 2020.08.25 |
안드로이드 스튜디오 기본 파일 입출력 경로 (0) | 2020.08.21 |
JsonObject의 getString()과 optString()의 차이 (0) | 2020.08.12 |