【问题标题】:Custom Translucent Color (changing transparency)自定义半透明颜色(改变透明度)
【发布时间】:2017-12-05 07:46:39
【问题描述】:

我正在尝试实现更亮的半透明状态栏,只有状态栏并尝试将导航栏保持为默认状态。

我尝试了一些解决方案(实际上它们都不是我想要的)。

在这个我无法改变半透明的透明度,我正在尝试变得更亮。但它没有改变。
http://blog.raffaeu.com/archive/2015/04/11/android-and-the-transparent-status-bar.aspx

另一个选项,我尝试使用全屏主题并放置一个与状态相同高度的渐变视图(这就是我想要的)。但是这次布局延伸到导航后面,导航失去了黑色背景。我找不到解决方案。(使其半透明不是我想要的)

TLDR:我试图通过将导航保持为默认设置来获得更明亮的半透明状态。有可能吗?
编辑。最小 SDK 为 20 (抱歉英语不好)

【问题讨论】:

    标签: android android-statusbar


    【解决方案1】:

    是的,这是可能的。

    1. 设置半透明状态

      <style name="AppThemeTranslucent" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="android:windowTranslucentStatus">true</item>
            <item name="android:windowTranslucentNavigation">true</item>
      </style>
      
    2. 使用以下方法为状态栏设置颜色:

      @TargetApi(Build.VERSION_CODES.LOLLIPOP)
      private void setTrasparentStatusBar() {
      Window window = getWindow();
          window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
          window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
      
          window.setStatusBarColor(ContextCompat.getColor(this, R.color.status_bar_color));
      
          window.setNavigationBarColor(ContextCompat.getColor(this, android.R.color.black));
      }
      
    3. 将此属性添加到您的根布局

      android:fitsSystemWindows="true"
      

    这就是我用这段代码实现的目标


    编辑

    我对此功能进行了调查,并非所有视图都实现了fitsSystemWindows,因此并非总是可以得到此结果。

    我建议您阅读this 和这里的repo 以及使用CoordinatorLayout 和否定marginTop 的示例

    【讨论】:

    • 导航保持半透明,如果我删除导航的半透明,它奇怪地将状态栏颜色删除为白色。我认为导航半透明覆盖导航颜色
    • 我忘了告诉你添加 fitSystemWindows 属性,检查更新的答案!
    • 我认为我的主题或布局有问题。我需要先弄清楚。谢谢!!
    • 我无法获得黑色导航,抱歉它仍然做同样的事情,要么布局延伸到导航后面,要么状态栏失去透明度
    【解决方案2】:

    我找到了解决方案here
    通过将此添加到 onCreate()

    getWindow().getDecorView().setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);  
    

    这会将它添加到您的风格中

     <item name="android:statusBarColor">@android:color/transparent</item>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多