레이아웃 화면에서 BottomNavigationView 끌어다 놓기
위와 같은 화면이 안 뜨고 로딩만 되는 거 같을 때, 디자인 화면이 안 뜰 때는 프로젝트를 껐다가 다시 열어보자.
위 화면이 뜨고 필요한 라이브러리 설치가 되야한다.
새 프래그먼트 추가!
레이아웃화면에서 NavHostFragment를 BottomNavigationView 에 끌어다 줌.
fragmentContainerView를 BottomNavigationView 와 동급으로 맞추고
above를 BottomNavigationView 으로 설정.
각 Fragment 화면을 구성. 액티비티와 연결된 레이아웃 화면과 똑같이 편집하면 된다. (같은 xml 파일)
메뉴 생성.
item 끌어다가 Menu 구성.
BottomNavigationView에 menu 연결.
탭을 눌렀을 때의 화면은 맞춰주지 않았으므로 현재 화면이 정상.
맨 처음 시작할 때의 화면은 다음 코드 수정하면 됨.
메인 액티비티에서 연결 코드
public class MainActivity extends AppCompatActivity {
BottomNavigationView navigationView ;
Fragment firstFragment;
Fragment secondFragment;
Fragment thirdFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 보통 내비게이션바 부분이 있는 앱의 경우 상단의 액션바는 감춘다.
getSupportActionBar().hide();
// 화면 연결
navigationView = findViewById(R.id.bottomNavigationView);
// itme select 로 메뉴를 누르면 화면이 바뀌도록 설정.
// 먼저 객체 생성.
firstFragment = new FirstFragment();
secondFragment = new SecondFragment();
thirdFragment = new ThirdFragment();
// 실제 연결 부분 - 코드 업데이트 예정
navigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
Fragment fragment = null;
if(itemId == R.id.firstFragment){
fragment = firstFragment;
getSupportActionBar().setTitle("홈");
getSupportActionBar().show();
} else if(itemId == R.id.secondFragment){
fragment = secondFragment;
getSupportActionBar().setTitle("게시판");
getSupportActionBar().show();
} else if(itemId == R.id.thirdFragment){
fragment = thirdFragment;
getSupportActionBar().setTitle("설정");
getSupportActionBar().show();
}
return loadFragment(fragment);
}
});
}
private boolean loadFragment(Fragment fragment) {
if(fragment != null){
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment, fragment)
.commit();
return true;
}
return false;
}
}
'Android' 카테고리의 다른 글
Android Studio - No speakable text present 에러 없애기 (0) | 2022.07.28 |
---|---|
Android Studio - Fragment 와 Activity 연결 (0) | 2022.07.27 |
Android Studio - Retrofit 에서 Multi form으로 데이터를 보내는 방법 (0) | 2022.07.26 |
Android Studio - (gradle) AndroidX 에러 해결 (0) | 2022.07.25 |
Android Studio - Retrofit 라이브러리를 이용하여 POST로 API 호출하여 사용하기 (0) | 2022.07.21 |
댓글