Navigationview+fragment:为什么切换一个fragment后,item无法点击。navigation的监听和fragment的切换代码如下

fishzhazha 2020-03-10 05:30:40
时间紧迫,救救孩子
   navCehua.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.it_Upload:
tvTitle.setText("上传错题");
SwitchFrag(fr_u);
Toast.makeText(MainActivity.this,menuItem.getTitle().toString(),Toast.LENGTH_SHORT).show();
break;
case R.id.it_Calendar:
tvTitle.setText("考试月历");
SwitchFrag(fr_c);
break;
case R.id.it_Text:
tvTitle.setText("错题测试");
SwitchFrag(fr_t);
Toast.makeText(MainActivity.this,menuItem.getTitle().toString(),Toast.LENGTH_SHORT).show();
break;
case R.id.it_Analyse:
tvTitle.setText("图谱分析");
SwitchFrag(fr_a);
break;
}

// navCehua.getMenu().clear();
// navCehua.inflateMenu(R.menu.cehua_menu);
// navCehua.getMenu().findItem(menuItem.getItemId()).setChecked(true);
drawer.closeDrawer(GravityCompat.START);
return true;
}
});

}


//转换fragment
public void SwitchFrag(Fragment targetFragment){

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
//如果Fragment没有被添加,则添加,否则显示
if(!targetFragment.isAdded()){

transaction.hide(currentFragment).add(R.id.dl_cebian, targetFragment).commit();
}
else{
transaction.hide(currentFragment).show(targetFragment).commit();
}
currentFragment = targetFragment;
}
...全文
214 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
拜雨自学 2021-02-13
  • 打赏
  • 举报
回复
NavigationUI.setupWithNavController这里面会把你的监听覆盖掉

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧