如何通过Snackbar按钮手动触发BottomNavigationView切换Fragment
直接调用BottomNavigationView的setSelectedItemId()方法就能触发切换——你已经实现了BottomNavigationView的Fragment切换逻辑,选中对应菜单项后原有逻辑会自动执行。具体代码修改如下:
修改后的完整代码
Snackbar.make(BLEFragment.this.getView(),"BLE IS NOT ENABLE ! \n go to the settings-tab,...",Snackbar.LENGTH_SHORT) .setBackgroundTint(Color.rgb(244, 78, 63)) .setTextColor(Color.rgb(255,255,255)) // 注意修正拼写错误:Settigs → Settings .setAction("Settings", new View.OnClickListener() { @Override public void onClick(View view) { // 获取BottomNavigationView实例(替换成你布局中实际的控件ID) BottomNavigationView bottomNav = getActivity().findViewById(R.id.bottom_navigation); // 空指针判断,避免Fragment脱离Activity时崩溃 if (bottomNav != null) { // 替换成你设置页对应的菜单项ID(即手动切换时点击的那个菜单项ID) bottomNav.setSelectedItemId(R.id.nav_settings); } } }) .show();
关键注意点
- 把
R.id.bottom_navigation替换成你布局文件中BottomNavigationView的真实ID - 把
R.id.nav_settings替换成设置页对应的菜单项ID - 增加空指针判断是为了避免Fragment处于 detached 状态时出现异常
内容的提问来源于stack exchange,提问作者rene
相关产品推荐
相关产品推荐

