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

如何使用Android中的导航控制器定制返回按钮以返回特定目的地?

堵恺
2023-03-14

我需要做一个自定义行为,当用户按下后退按钮时,用户将通过编程方式前往某个目的地。实际上,我已经在Android导航组件中阅读了这个返回处理按钮

但是我不知道如何使用自定义后退按钮code.it对我来说似乎很奇怪。

我试过使用下面的代码

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        fragmentView = inflater.inflate(R.layout.fragment_search_setting, container, false)

        // set custom back button
        val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {

            // navigate to certain destination
            Navigation.findNavController(fragmentView).popBackStack(R.id.destination_create_event, false)


        }


        return fragmentView
    }

共有1个答案

俞俊逸
2023-03-14

您必须创建OnBackPressedCallback抽象类的新实例,并实现其抽象方法。

我希望这能帮助你:

        val callback = requireActivity().onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true){
        override fun handleOnBackPressed() {
                        Navigation.findNavController(fragmentView).popBackStack(R.id.destination_create_event, false)
        }


    })

    // The callback can be enabled or disabled here or in the lambda

}
 类似资料:
  • 我一直在思考使用Spring MVC设计JSON API的最佳方法。众所周知,IO很昂贵,因此我不想让客户端进行多次API调用以获得他们需要的东西。然而,与此同时,我不一定想归还厨房水槽。 例如,我正在开发一个类似于IMDB的游戏API,但用于视频游戏。 如果我返回与游戏相关的所有内容,它将看起来像这样。 /api/game/1 然而,他们可能不需要所有这些信息,但他们可能需要这些信息。从I/O和

  • 我有以下问题: 到此: 使用:

  • 我想做的是 我正在使用Android导航组件来处理我的应用程序中的导航。在这个例子中,我有两个屏幕,屏幕A和屏幕B。我希望用户能够单击屏幕A中的按钮,并能够导航到屏幕B;然后被阻止回到前一个屏幕(屏幕A)。 问题所在 null MainActivity--它充当我的单个活动navhost。

  • 目标是打印标签的当前文本。标签在整个程序中不断变化,使用当前的方法,我只能检索标签的初始化值。 我用来检索控制器实例的内容:

  • 本文向大家介绍Android 自定义返回按钮的实例详解,包括了Android 自定义返回按钮的实例详解的使用技巧和注意事项,需要的朋友参考一下 Android 自定义返回按钮的实例详解 程序中我们有时候想让放回按钮按照自己的需求调整页面而不是单纯的按照系统返回上一级,这个问题很简单,重写 onKeyDown 方法即可。 下面方法,包含了 webview 中的返回上一页和普通 activity 的单

  • 你好,我是拉威尔的新手,也许这对你们来说太傻了。在laravel 8中,路由web。php我创建了一条如下的路线: 我想问的是,我们也可以从回调视图返回控制器吗?所以在路由 /editprofile中,第二个参数不是'App\Http\Controller\SiteController@edit_profile',而是一个回调函数,如路由'/home'。 但是它返回错误哈哈。假设我不想用__con