-
[Android] NaviagionBar (하단바) 생성 & 상단 모서리 둥글게Android 2024. 5. 12. 20:21

이렇게 하단바를 생성하고, 상단 모서리를 둥글게 하려고 한다면! 아래와 같은 순서로 진행해주면 된다!
1. menu_nav_bar.xml 생성
우선 menu.xml 파일을 만들어준다.

item 은 메뉴 하나당 아이템이다. icon이랑 title을 지정해주고, showAsAction을 Always로 해주어야 화면에 나온다!!!
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_main_btm_nav_home" android:icon="@drawable/home_icon" app:showAsAction="always" android:enabled="true" android:checkable="true" android:title="홈" /> <item android:id="@+id/menu_main_btm_nav_review" android:icon="@drawable/review_icon" app:showAsAction="always" android:enabled="true" android:title="리뷰" /> <item android:id="@+id/menu_main_btm_nav_map" android:icon="@drawable/map_icon" app:showAsAction="always" android:enabled="true" android:title="지도" /> <item android:id="@+id/menu_main_btm_nav_my_page" android:icon="@drawable/mypage_icon" app:showAsAction="always" android:enabled="true" android:title="마이페이지" /> </menu>2. 표시할 xml에 BottomNavigation 추가
com.google.android.material.bottomnavigation.BottomNavigationView를 추가해서 아까 만들어두었던 menu랑 연결해준다!

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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" tools:context=".src.main.MainActivity"> <FrameLayout android:id="@+id/main_fragment" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/main_btm_nav" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/radius" app:labelVisibilityMode="labeled" app:itemIconTint="@drawable/main_btm_nav_item_color" app:itemTextColor="@drawable/main_btm_nav_item_color" app:layout_constraintBottom_toBottomOf="parent" app:menu="@menu/menu_main_bottom_nav" /> </androidx.constraintlayout.widget.ConstraintLayout>3. 모서리 둥글게 만들기
위에 보면 background가 radius로 지정되어있다!
배경을 radius.xml로 따로 빼서 둥글게 만들어주었다.

[Android] 아이템 모서리 둥글게 만들기 Radius
안드로이드 Radius shape 만들기. 🤍
velog.io
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#ffffff" ></solid> <corners android:topLeftRadius="20dp" android:topRightRadius="20dp"></corners> </shape>4. main 에서 가져와서 활용
주로 하단바를 사용하는거는 fragment를 활용하려고 하기 때무니다.
히히 id로 menu를 찾고 해당 id 를 클릭했을 때 그에 맞는 fragment로 연결해주면 된다!

binding.mainBtmNav.setOnItemSelectedListener{ item -> when (item.itemId) { R.id.menu_main_btm_nav_home -> { supportFragmentManager.beginTransaction() .replace(R.id.main_fragment, HomeFragment()) .commitAllowingStateLoss() } R.id.menu_main_btm_nav_review -> { supportFragmentManager.beginTransaction() .replace(R.id.main_fragment, ReviewFragment()) .commitAllowingStateLoss() } R.id.menu_main_btm_nav_map -> { supportFragmentManager.beginTransaction() .replace(R.id.main_fragment, MapFragment()) .commitAllowingStateLoss() } R.id.menu_main_btm_nav_my_page -> { supportFragmentManager.beginTransaction() .replace(R.id.main_fragment, MyPageFragment()) .commitAllowingStateLoss() } } true }'Android' 카테고리의 다른 글
[Android] 카카오 API 릴리즈키 해시 생성하기 (0) 2024.09.01 [Android] KakaoLink 공유하기 개발 환경 세팅 & 활용하기 (1) 2024.08.11