바텀네비게이션 코드확인

https://github.com/jaybon1/androidwork/tree/master/bottomNavEx01

 

jaybon1/androidwork

Contribute to jaybon1/androidwork development by creating an account on GitHub.

github.com

 

 

머터리얼 디자인에서 구성하는법 확인

 

https://material.io/develop/android/components/bottom-navigation

 

Material Design

Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences.

material.io

 

 

그래들 의존성 추가

    // 나의 라이브러리
    implementation 'com.google.android.material:material:1.1.0-alpha06'

 

 

 

참고

바텀네비게이션 뷰는 5개이상 만들지 말라는 권장사항이 있다

 

 

 

코드분석

 

네비게이션 메뉴 아이콘 생성

 

my_nav_items.xml

res하위 menu에 메뉴아이템들을 설정할 파일을 만든다

위에서 생성한 아이콘을 이용하여 입력

 

 

 

activity_main.xml

아이콘에 글자 안보이게 설정하는 방법

 

 

 

colors.xml

커스텀 컬러를 설정할 수 있다

 

 

 

프래그먼트를 3개 만들어주자

 

 

 

메인액티비티

package com.jaybon.bottomnavex01;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;

import com.google.android.material.bottomnavigation.BottomNavigationView;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "Main_Activity";


    // 자기가 직접 만든건 앞에 m이나 my를 붙이면 구분이 쉽다
    private BottomNavigationView myBottomNavigationView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myBottomNavigationView = findViewById(R.id.bottom_nav_view);
        myBottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {

                Log.d(TAG, "onNavigationItemSelected: "+item.getItemId());
                Log.d(TAG, "onNavigationItemSelected: R값: "+R.id.nav_search);
                
                switch (item.getItemId()){

                }
                
                return false;
            }
        });

    }
}

 

 

중간확인

 

package com.jaybon.bottomnavex01;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;

import com.google.android.material.bottomnavigation.BottomNavigationView;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "Main_Activity";


    // 자기가 직접 만든건 앞에 m이나 my를 붙이면 구분이 쉽다
    private BottomNavigationView myBottomNavigationView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myBottomNavigationView = findViewById(R.id.bottom_nav_view);
        myBottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {

                Log.d(TAG, "onNavigationItemSelected: "+item.getItemId());
                Log.d(TAG, "onNavigationItemSelected: R값: "+R.id.nav_search);
                
                switch (item.getItemId()){
                    case R.id.nav_search:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Frag1()).commit();
                        break;
                    case R.id.nav_setting:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Frag2()).commit();
                        break;
                    case R.id.nav_nav:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new Frag3()).commit();
                        break;
                }
                
                return true; // true를 써야 그림이 다시그려진다
            }
        });

    }
}

 

 

 

 

----------------

 

 

 

 

 

 

 

+ Recent posts