我正在努力学习导航组件,我一直坚持实现选项菜单。我有一个简单的选项叫做“设置”,它导航到“设置碎片”。我按照文档实现了它,但是菜单项不会以这种方式显示在工具栏中。
这是我的主要活动代码:
public class MainActivity extends AppCompatActivity {
private NavController navController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NavHostFragment hostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
navController = NavHostFragment.findNavController(hostFragment);
AppBarConfiguration appBarConfiguration =
new AppBarConfiguration.Builder(navController.getGraph()).build();
Toolbar toolbar = findViewById(R.id.toolbar);
NavigationUI.setupWithNavController(
toolbar,
navController,
appBarConfiguration
);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
return NavigationUI.onNavDestinationSelected(item, navController)
|| super.onOptionsItemSelected(item);
}
@Override
public boolean onSupportNavigateUp() {
return navController.navigateUp() || super.onSupportNavigateUp();
}
}
但是,当我用 setSupportActionBar()
提前使用 NavigationUI.setupActionBarWithNavController()
而不是 NavigationUI.setupWithNavController()
它似乎是工作,我可以看到选项菜单和导航功能也工作,但我失去了不错的小工具栏动画,我也不知道如果它的最佳做法。我对这个主题还不熟悉,所以我想知道我遗漏了什么,或者如何正确地实现它。
提前谢谢。
1条答案
按热度按时间hjqgdpho1#