[Android Studio] bottomNavigationBar

노유성·2023년 7월 1일
0
post-thumbnail

🌞들어가며


bottomNavigationBar는 위 사진과 같이 아래에 네비게이션 버튼을 누르면 다른 페이지로 넘어가게 하는 navigation이다.

item을 선택하면 새로운 fragment를 보여주게 구성된다.

⭐과정

🪐menu item

먼저 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등의 정보들을 입력한다.

🪐activity_main.xml

<?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을 지정해주어야 한다.

🪐MainActivity.java

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를 보여줄 것인지 설정하면 끝이다.

profile
풀스택개발자가되고싶습니다:)

0개의 댓글