BottomNavigation View OnNavigationItemSelectedListener 已弃用
BottomNavigation View OnNavigationItemSelectedListener is deprecated
我正在按照 Material Design
尝试 Android 的 BottomNavigationView 实现
但是,在 MainActivity 代码中,我收到一条警告,指出 OnNavigationItemSelectedListener
已被弃用 - 请参见下面的快照
已尝试使用 BottomNavigationView 的替代方法,但我找不到它。
向任何有出路的人寻求帮助,但与此同时,我将我的 BottomView 的菜单项 ID 与片段目标 ID 进行了匹配,并且我成功实现了导航,但存在无法更新我的工具栏标题的限制片段的名称。
只需使用OnItemSelectedListener
界面:
kotlin
bottomNavigationView?.setOnItemSelectedListener {
// do stuff
return@setOnItemSelectedListener true
}
Java
bottomNavigationView.setOnItemSelectedListener(item -> {
// do stuff
return true;
});
binding!!.bottomNavigationView.setOnItemSelectedListener{
when (it.itemId) {
R.id.home_menu -> {
openFragment(HomeFragment.newInstance("", ""))
return@setOnItemSelectedListener true
}
R.id.deals -> {
openFragment(DealFragment.newInstance("", ""))
return@setOnItemSelectedListener true
}
R.id.history -> {
openFragment(HistoryFragment.newInstance("", ""))
return@setOnItemSelectedListener true
}
R.id.page_2 -> {
openFragment(AccountFragment.newInstance("", ""))
return@setOnItemSelectedListener true
}
}
false
}
试试这个!!
这是 Kotlin 的解决方案。确保 return@setOnItemSelectedListener true
,这行代码更改导航视图中菜单项的颜色。
bottomNavigationView.setOnItemSelectedListener {
when (it.itemId) {
R.id.firstId -> {
// Write your code here
}
R.id.secondID-> {
// Write your code here
}
}
return@setOnItemSelectedListener true
}
OnNavigationItemSelectedListener 现在已弃用,请在下面的一些示例中使用 setOnItemSelectedListener -
bottomNav.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@SuppressLint("NonConstantResourceId")
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.bottom_m_home:
viewPager.setCurrentItem(0);
break;
case R.id.bottom_m_reward:
viewPager.setCurrentItem(1);
break;
case R.id.bottom_m_wallet:
viewPager.setCurrentItem(2);
break;
case R.id.bottom_m_share:
viewPager.setCurrentItem(3);
break;
default:
viewPager.setCurrentItem(0);
}
return true; // return true;
}
});
您可以使用 Bubble Navigation 代替 BottomNavigationView。
Bubble Navigation 是一个轻量级库,可通过大量自定义选项轻松制作漂亮的导航栏。
我正在按照 Material Design
尝试 Android 的 BottomNavigationView 实现但是,在 MainActivity 代码中,我收到一条警告,指出 OnNavigationItemSelectedListener
已被弃用 - 请参见下面的快照
已尝试使用 BottomNavigationView 的替代方法,但我找不到它。
向任何有出路的人寻求帮助,但与此同时,我将我的 BottomView 的菜单项 ID 与片段目标 ID 进行了匹配,并且我成功实现了导航,但存在无法更新我的工具栏标题的限制片段的名称。
只需使用OnItemSelectedListener
界面:
kotlin
bottomNavigationView?.setOnItemSelectedListener {
// do stuff
return@setOnItemSelectedListener true
}
Java
bottomNavigationView.setOnItemSelectedListener(item -> {
// do stuff
return true;
});
binding!!.bottomNavigationView.setOnItemSelectedListener{
when (it.itemId) {
R.id.home_menu -> {
openFragment(HomeFragment.newInstance("", ""))
return@setOnItemSelectedListener true
}
R.id.deals -> {
openFragment(DealFragment.newInstance("", ""))
return@setOnItemSelectedListener true
}
R.id.history -> {
openFragment(HistoryFragment.newInstance("", ""))
return@setOnItemSelectedListener true
}
R.id.page_2 -> {
openFragment(AccountFragment.newInstance("", ""))
return@setOnItemSelectedListener true
}
}
false
}
试试这个!!
这是 Kotlin 的解决方案。确保 return@setOnItemSelectedListener true
,这行代码更改导航视图中菜单项的颜色。
bottomNavigationView.setOnItemSelectedListener {
when (it.itemId) {
R.id.firstId -> {
// Write your code here
}
R.id.secondID-> {
// Write your code here
}
}
return@setOnItemSelectedListener true
}
OnNavigationItemSelectedListener 现在已弃用,请在下面的一些示例中使用 setOnItemSelectedListener -
bottomNav.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@SuppressLint("NonConstantResourceId")
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.bottom_m_home:
viewPager.setCurrentItem(0);
break;
case R.id.bottom_m_reward:
viewPager.setCurrentItem(1);
break;
case R.id.bottom_m_wallet:
viewPager.setCurrentItem(2);
break;
case R.id.bottom_m_share:
viewPager.setCurrentItem(3);
break;
default:
viewPager.setCurrentItem(0);
}
return true; // return true;
}
});
您可以使用 Bubble Navigation 代替 BottomNavigationView。
Bubble Navigation 是一个轻量级库,可通过大量自定义选项轻松制作漂亮的导航栏。