반응형
(기능만을 설명한 포스팅이므로 Fragment, BottomNavigationView 등의 생성 방법은 생략합니다.)
설명이 필요하면 아래의 포스팅을 확인해주세요.
https://luvris2.tistory.com/292?category=1069058
BottomNavigationView 객체 생성 및 설정
MainActivity.java
public class MainActivity extends AppCompatActivity {
// 탭 메뉴
BottomNavigationView bottomNavigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 탭 메뉴 클릭시 아이콘 변경
bottomNavigationView = findViewById(R.id.bottomNavigationView);
bottomNavigationView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.menuHome) {
// 선택된 메뉴의 아이콘 이미지 변경
item.setIcon(R.drawable.tap_menu_icon_home_fill);
// 선택되지 않은 메뉴의 아이콘 이미지 변경
bottomNavigationView.getMenu().findItem(R.id.menuMap).setIcon(R.drawable.tap_menu_icon_map);
bottomNavigationView.getMenu().findItem(R.id.menuCommunity).setIcon(R.drawable.tap_menu_icon_community);
bottomNavigationView.getMenu().findItem(R.id.menuMyPage).setIcon(R.drawable.tap_menu_icon_my_page);
} else if (item.getItemId() == R.id.menuMap) {
item.setIcon(R.drawable.tap_menu_icon_map_fill);
bottomNavigationView.getMenu().findItem(R.id.menuHome).setIcon(R.drawable.tap_menu_icon_home);
bottomNavigationView.getMenu().findItem(R.id.menuCommunity).setIcon(R.drawable.tap_menu_icon_community);
bottomNavigationView.getMenu().findItem(R.id.menuMyPage).setIcon(R.drawable.tap_menu_icon_my_page);
} else if (item.getItemId() == R.id.menuCommunity) {
item.setIcon(R.drawable.tap_menu_icon_community_fill);
bottomNavigationView.getMenu().findItem(R.id.menuHome).setIcon(R.drawable.tap_menu_icon_home);
bottomNavigationView.getMenu().findItem(R.id.menuMap).setIcon(R.drawable.tap_menu_icon_map);
bottomNavigationView.getMenu().findItem(R.id.menuMyPage).setIcon(R.drawable.tap_menu_icon_my_page);
} else if (item.getItemId() == R.id.menuMyPage) {
item.setIcon(R.drawable.tap_menu_icon_my_page_fill);
bottomNavigationView.getMenu().findItem(R.id.menuHome).setIcon(R.drawable.tap_menu_icon_home);
bottomNavigationView.getMenu().findItem(R.id.menuMap).setIcon(R.drawable.tap_menu_icon_map);
bottomNavigationView.getMenu().findItem(R.id.menuCommunity).setIcon(R.drawable.tap_menu_icon_community);
} return true;
}
});
// todo : 이후 코드 작성
}
}
실행 화면
- 메뉴를 선택하면 선택된 메뉴의 아이콘 변경
반응형