【问题标题】:How to show action bar when replace a fragment after hiding it on previous fragment?在将片段隐藏在前一个片段上后替换片段时如何显示操作栏?
【发布时间】:2022-11-18 12:34:45
【问题描述】:

我在 MainActivity 级别 (mainActionBar) 上有一个操作栏,在片段级别 (fragActionBar) 上有一个操作栏。我有 3 个片段(A、B、C)。我希望在访问片段 A 和 B 时显示 mainActionBar。另一方面,我希望在访问片段 C 时显示 fragActionBar

我在片段之间切换时使用replace(),并使用addToBackStack保存上一个片段,这样我就可以使用popBackStack返回到上一个片段。流程是这样的:A<->B <->C。 fragActionBar 包含向上按钮,如果我按下向上按钮,它将返回到片段 B。mainActionBar 没有向上按钮,我使用工具栏/操作栏之外的按钮在 A<->B->C 之间更改片段。所以只有 C->B 正在使用向上按钮。

当我在片段 A 和 B 上时,我成功地显示了mainActionBar。当我在片段 C 上时,我也成功地显示了fragActionBar。但是当我回到片段 B 时,mainActionBar 没有不要出现。我尝试将supportActionBar?.show() 放入onResume() 中,但没有成功。我也试着把(activity as AppCompatActivity).supportActionBar?.show()放在setNavigationOnClickListener里面,还是不行。

访问片段C后返回片段B时如何显示mainActionBar

【问题讨论】:

  • 在 Fragment C 中,您替换了 supportActionBar。当你回到 B 时,你应该再次设置 mainActionBar。

标签: android kotlin android-fragments android-actionbar android-lifecycle


【解决方案1】:

事实证明,我需要通过将绑定从 MainActivity 传递到其他片段来使用我在 MainActivity 中声明的工具栏。这是因为我在其他片段中使用了不同的工具栏,这就是为什么即使我使用.show() 也不会影响更改的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多