如何确定后退按钮按下
Posted
技术标签:
【中文标题】如何确定后退按钮按下【英文标题】:How to determine back button press 【发布时间】:2019-08-28 19:44:59 【问题描述】:我正在使用 android 导航组件库。我用导航图设置了两个片段。我想在我的片段内按下后退按钮时执行一些额外的操作。
override fun onOptionsItemSelected(item: MenuItem): Boolean
return NavigationUI.onNavDestinationSelected(item, view!!.findNavController())
|| super.onOptionsItemSelected(item)
我使用此代码来处理工具栏向上按钮单击,但我也想处理返回按钮按下。我该怎么做?
【问题讨论】:
查看***.com/questions/7992216/… 页面。你会在那里找到答案。 没有片段管理器有没有办法处理? 你的意思是什么额外的操作? 我想通知我的视图模型离开片段以保存数据 这就是你想要的***.com/questions/51043428/… 【参考方案1】:这是另一个 onBackPessed 覆盖
back press
【讨论】:
它在片段中不起作用,你需要一些技巧来处理它。 添加了答案链接【参考方案2】:例子:
public class MyFragment extends Fragment
@Override
public void onCreate(@Nullable Bundle savedInstanceState)
super.onCreate(savedInstanceState);
// This callback will only be called when MyFragment is at least Started.
OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */)
@Override
public boolean handleOnBackPressed()
// Handle the back button event
);
requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
// The callback can be enabled or disabled here or in handleOnBackPressed()
...
更多解释见android官方指南:Provide custom back navigation
【讨论】:
以上是关于如何确定后退按钮按下的主要内容,如果未能解决你的问题,请参考以下文章