bottomNavigationBar는 위 사진과 같이 아래에 네비게이션 버튼을 누르면 다른 페이지로 넘어가게 하는 navigation이다.
item을 선택하면 새로운 fragment를 보여주게 구성된다.
먼저 menu itme을 생성해야한다.
menu/bottom_menu.xml 파일에
<?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/account"
android:enabled="true"
android:icon="@drawable/account"
android:title="계좌"
app:showAsAction="always" />
<item
android:id="@+id/invest"
android:enabled="true"
android:icon="@drawable/invest"
android:title="투자"
app:showAsAction="always" />
<item
android:id="@+id/myinvest"
android:enabled="true"
android:icon="@drawable/myinvest"
android:title="나의 투자"
app:showAsAction="always" />
<item
android:id="@+id/notice"
android:enabled="true"
android:icon="@drawable/notice"
android:title="알림"
app:showAsAction="always" />
<item
android:id="@+id/seemore"
android:enabled="true"
android:icon="@drawable/seemore"
android:title="더보기"
app:showAsAction="always" />
</menu>
id, title, icon등의 정보들을 입력한다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@color/initBackGround"
tools:context=".MainActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/containers">
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.example.myapplication.MainPage.Account"/>
</FrameLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigationview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/initBackGround"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_menu"
/>
</LinearLayout>
item을 클릭시에 보여줄 fragment와 BottomNavigationView를 생성한다.
중요한 점은 menu 속성에 속성값으로 만들었던 item을 지정해주어야 한다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_index);
NavigationBarView navigationBarView = findViewById(R.id.bottom_navigationview);
navigationBarView.setOnItemSelectedListener(navListener);
}
private NavigationBarView.OnItemSelectedListener navListener = new NavigationBarView.OnItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()){
case R.id.account:
getSupportFragmentManager().beginTransaction().replace(R.id.containers, accountFragment).commit();
return true;
case R.id.invest:
getSupportFragmentManager().beginTransaction().replace(R.id.containers, investFragment).commit();
return true;
...
}
return false;
}
};
item이 선택되면은 어떤 fragment를 보여줄 것인지 설정하면 끝이다.