当前位置: 首页 > 知识库问答 >
问题:

如何确定后退按钮按下

季阳朔
2023-03-14

我正在使用android导航组件库。我用导航图设置了两个片段。我想在我的片段内按下后退按钮时做一些额外的动作。

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return NavigationUI.onNavDestinationSelected(item, view!!.findNavController())
           || super.onOptionsItemSelected(item)
}

我使用这段代码来处理工具栏上的按钮点击,但我也想处理后退按钮按下。我该怎么做?

共有2个答案

年凯康
2023-03-14

例子:

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官方指南中的更多解释:提供自定义返回导航

范成周
2023-03-14

这是另一种覆盖

背压

 类似资料:
  • 问题内容: 我有一个带有列表视图的活动。当用户单击项目时,将打开项目“查看器”: 效果很好,但是在操作栏上,应用图标旁边的向后箭头没有被激活。我想念什么吗? 问题答案: Selvin已经发布了正确答案。在这里,用漂亮的代码解决方案: 该函数要求您在AndroidManifest.xml文件中定义父活动 请参阅此处以进一步阅读。

  • 我有一个带有列表视图的活动。当用户单击项目时,项目“查看器”打开: 这很好,但在操作栏上,应用图标旁边的后退箭头没有被激活。我错过什么了吗?

  • 我对libGDX有一个问题,当我用后退按钮退出后恢复应用程序时,只有一个白色屏幕。 实际应用运行,接受触摸输入,播放声音,但屏幕只是白色。 我读过保持对纹理的静态引用可能会导致这个问题,但我没有这样做。 下面是我的资产代码如何工作的简化版本。 在按下后退按钮后返回应用程序时,重新创建AssetManager,重新打开SplashScreen(为白色),并更新AssetManager直到重新加载所有

  • 我正在编写一个小型PyQt4应用程序,它只是一个“是/否”对话框,必须执行一个外部命令(例如“eject/dev/sr0”)并退出。 应用程序运行时,它在按下“是”按钮后执行命令,但我无法在执行命令时使对话框本身退出。 这是我的密码。当我单击“是”时,它会正确地调用'eject/dev/sr0'命令,但在此之后对话框仍然可见。我必须单击“否”关闭应用程序,我希望它在执行命令时自动关闭。我应该添加/

  • 问题内容: 我想在片段类中禁用后退按钮。在此片段中似乎不起作用。如何禁用后退按钮? 这是我的示例代码: 问题答案: 您必须重写父FragmentActivity类的onBackPressed。因此,将您的代码放在父FragmentActivity中。或者,您可以使用以下方法调用父方法: 在FragmentActivity中重写onBackPressed方法,而不调用其超类来禁用后退按钮。