Tencent / QMUI_Android

提高 Android UI 开发效率的 UI 库
http://qmuiteam.com/android
Other
14.46k stars 2.68k forks source link

必须使用topbar 加qmui里面的状态栏工具类才能是颜色统一吗。使用自己的toobar就有颜色差 #96

Open jiangkaiying opened 6 years ago

jiangkaiying commented 6 years ago

运行环境

具体问题描述

问题截图

异常日志(堆栈)

cgspine commented 6 years ago

能否贴一下你的代码?使用toobar也是可以做到的

jiangkaiying commented 6 years ago

xc1 at e zz3 iw7snb t1405 0 fnfjhow ctvky s71208-085937

cgspine commented 6 years ago

xml 中最外层容器 LinearLayout 是 fitSytemWindows = true。所以状态栏的颜色是就是 LinearLayout 的背景色,也就是 @color/colorPageBg。QMUIDemo的做法是最外层容器设置为toolbar的颜色,内容区域设置为 colorPageBg。

cgspine commented 6 years ago

还有另一种方式,是使用QMUIWindowInsetLayout,不过要改布局结构:

<QMUIWindowInsetLayout
   background="page背景">
  <!-- 内容容器 -->
  <FrameLayout 
      margin_top = "?attr/qmui_topbar_height"
       fitSystemWindow = "true">
      <!-- 内容 -->
   </FrameLayout>
  <!-- topbar,必须包裹一层,因为 fitSystemWindow 本质上是加padding,且必须放在内容容器下方 -->
  <FrameLayout 
      fitSystemWindow = "true"
      background="topbar和状态栏颜色">
       <ToolBar height = "?attr/qmui_topbar_height">
   </FrameLayout>
</QMUIWindowInsetLayout>