【问题标题】:Whenever i try to hide a toolbar within fragment, app changes toolbar title first, and only after that hides itself每当我尝试在片段中隐藏工具栏时,应用程序首先更改工具栏标题,然后才隐藏自己
【发布时间】:2021-06-01 16:15:30
【问题描述】:

我正在尝试通过单击按钮导航到另一个片段:

findNavController().navigate(FirstFragmentDirections.navigateToSecondFragment(argument))

我正在尝试在第二个片段中隐藏工具栏标题:

override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        (activity as AppCompatActivity).supportActionBar?.hide()
        _binding = FragmentBinding.inflate(inflater, container, false)
        return binding.root
    }

问题是,每当我单击一个按钮时,工具栏首先更改其标题名称(更改为第二个片段名称),然后才导航到第二个片段并隐藏自身。一米一秒甚至更短。我怎样才能解决这个问题?我正在使用导航抽屉。

【问题讨论】:

    标签: android kotlin fragment toolbar


    【解决方案1】:

    在活动级别使用工具栏而不是片段。您可以将该工具栏组件添加到您的父活动 xml 布局中,这样您就可以在导航到另一个片段之前进行控制。

    【讨论】:

    • 欢迎您的回复!我的工具栏已经在主要活动 xml 文件中声明。据我了解,您建议通过主要活动 kt 文件以编程方式控制工具栏可见性,对吗?我在网上浏览这个话题,找到了一些解决方案,比如if (supportFragmentManager.fragments.first()?.childFragmentManager?.fragments?.get(0)==SecondFragment()) { supportActionBar?.hide() }
    • if (supportFragmentManager.findFragmentById(R.id.nav_host_fragment) is SecondFragment) { supportActionBar?.hide() } 但它们都不起作用。
    • 这个解决方案有点帮助 - stackoverflow.com/a/58027509/13916204 但现在还有另一个问题。工具栏首先消失,然后才导航到另一个片段。我将继续深入研究,任何建议将不胜感激。我想让过渡尽可能顺利。
    • 您发布的博客为您提供了一种在应为全屏的屏幕上导航时隐藏底栏和工具栏的方法。通常,在每个片段中都有一个工具栏会使 UI 更加一致,但这取决于您。你明白了,是的,我提议从 MainActivity.kt 控制可见性。使过渡看起来非常顺利有点棘手。考虑在动画块中添加隐藏过程,让它看起来有点消失
    猜你喜欢
    • 2016-01-17
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 2017-06-15
    • 2015-05-21
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    相关资源
    最近更新 更多