바텀네비게이션 코드확인
https://github.com/jaybon1/androidwork/tree/master/bottomNavEx01
머터리얼 디자인에서 구성하는법 확인
https://material.io/develop/android/components/bottom-navigation
그래들 의존성 추가
// 나의 라이브러리
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를 써야 그림이 다시그려진다
}
});
}
}
----------------
'App > Android' 카테고리의 다른 글
안드로이드 // 200723 // 인스타그램UI + 리사이클러뷰 (0) | 2020.07.23 |
---|---|
안드로이드 // 200722 // 네비게이션 아이템 클릭 / 액티비티 매니저 서비스 / 스크롤뷰 -> 리스트뷰 -> 리사이클러뷰 (0) | 2020.07.22 |
200715 / 액션바 / 툴바 / 액티비티와 프래그먼트 (0) | 2020.07.15 |
200714 / 안드로이드 기초 / 인스타그램 로그인페이지 만들기 / 계산기 만들기 (0) | 2020.07.14 |
인스타그램 UI 만들기 (0) | 2020.07.09 |