gpt4 book ai didi

android - 使用导航组件处理工具栏后退按钮

转载 作者:行者123 更新时间:2023-11-29 02:18:19 29 4
gpt4 key购买 nike

我遵循单一 Activity 方法。我有导航工具栏,每当我转到其他屏幕( fragment )而不是汉堡包图标时,我都会有后退箭头。

我想要实现的是,使用按下工具栏后退箭头的操作弹出我当前的 fragment 。

我试过了

requireActivity().getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
NavHostFragment.findNavController(EventDetailsFragment.this)
.navigate(R.id.action_nav_event_details_to_nav_home);
}
});

但没有接到那边的电话,我通过在 Debug模式下运行应用程序进行了检查。

最佳答案

Activity oncreate 中:

navController = findNavController(R.id.my_nav_host)
//my_nav_host defined in activity xml file as id of fragment or FragmentContainerView
val appBarConfiguration = AppBarConfiguration(navController.graph)
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration)

和:

override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == android.R.id.home) {
onBackPressed()
return true
}
return true
}

然后在你的 fragment 中:

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

val callback: OnBackPressedCallback =
object : OnBackPressedCallback(true /* enabled by default */) {
override fun handleOnBackPressed() {
//do what you want here
}
}
requireActivity().onBackPressedDispatcher.addCallback(this, callback)
}

关于android - 使用导航组件处理工具栏后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58516720/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com