【问题标题】:How to display different statusbar color in different fragment如何在不同的片段中显示不同的状态栏颜色
【发布时间】:2020-05-04 17:22:42
【问题描述】:

我的 android 应用程序中有 20 个片段。

有两个片段有CollaspingToolbarLayout - 我希望这个片段的状态栏颜色就像他们的 CollaspingToolbar 颜色一样,它是原色

其他十八个片段有Toolbar - 我希望这个片段的状态栏颜色像他们的工具栏颜色一样是白色的

我可以通过在每个片段中添加它来做到这一点,但我必须在所有片段中添加它。

GetActivity().getWindow().setStatusBarColor(//color here//);

还有其他方法吗? 提前谢谢你。

【问题讨论】:

  • 使用 BaseFragment 扩展所有这些,以便您可以更好地控制它
  • 关闭具有CollapsingToolbarLayout 的片段时如何将StatusBar 颜色设置回白色?这样就不需要再去触碰其他18个片段了。您只触摸 2 片段。
  • 有效!!!谢谢@AzizjonKholmatov 你可以回答这个问题。我会标记的。

标签: android android-fragments android-toolbar android-statusbar android-color


【解决方案1】:

您的情况非常具体。

关闭具有CollapsingToolbarLayout 的片段时,您可以将StatusBar 颜色设置回白色。这样就不需要再去触碰其他18个片段了。你只接触那两个片段。

注意:我真的建议有一个父活动或片段,它们有专门的方法来执行这些操作。它使您的代码更干净且更具可读性。

【讨论】:

  • 谢谢,但我现在面临另一个问题。
  • 当我将其他片段状态栏颜色设置为白色时,所有状态栏元素都不会显示。我怎样才能让它变黑。
  • 我尝试使用 getDecorView() 方法设置标志,但它不起作用
  • @bhumivaghasiya 在将颜色设置为StatusBar 之前,StatusBar 文本和图标的颜色是否为白色?
猜你喜欢
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
相关资源
最近更新 更多