【问题标题】:colorprimarydark only work for the mainactivity,what should i do with itcolorprimarydark 仅适用于主要活动,我该怎么办
【发布时间】:2016-04-14 21:56:36
【问题描述】:

这是我的清单

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:supportsRtl="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

    <service android:name="com.amap.api.location.APSService" />

    <activity
        android:name=".MainActivity"
        android:label=""/>
    <activity
        android:name=".QueryActivity"
        android:label="" />
    <activity
        android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".RegistActivity" />
    <activity
        android:name=".TaskListActivity"
        android:label="" />
    <activity
        android:name=".TaskWatcherActivity"
        android:label="" />
    <activity
        android:name=".DetailsActivity"
        android:label="" />

</application>

我已经在 style 中设置了样式:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>

    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

    <item name="colorAccent">@color/colorAccent</item>

    <item name="colorControlNormal">@color/cpb_white</item>
</style>


<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/white</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

&style-v21:

<resources>

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:fitsSystemWindows">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:navigationBarColor">@android:color/transparent</item>

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:textSize">15sp</item>

    <item name="android:colorControlNormal">@color/cpb_white</item>

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>

    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

但只有 mainactivity 的状态栏是 colorprimarydark,其他活动的状态栏是他们布局背景的颜色。那么如何让 colorprimarydark 为每个活动的状态栏工作

【问题讨论】:

  • 您是否为所有活动扩展 AppCompatActivity?
  • 我为某些活动扩展了 appcompatactivity,其他扩展了活动,但只有 mainactivity 工作
  • activity android:name=".MainActivity" android:label="" android:theme="@style/AppTheme" /> 同此

标签: android android-layout


【解决方案1】:

非常简单实用的库 for Tint Color 在每个 Activity 中使用此库设置您的状态颜色。

【讨论】:

  • 但是我还是想设置一次,我不明白为什么只有mainactivity起作用,也许是因为我使用了其中的drawerlayout?
  • 在 Manifest 文件的每个活动标签中设置相同的主题
  • 谢谢,我正在学习使用它。但我认为我已经设置了 [@android:color/transparent] 样式- v21.xml,所以我认为所有状态栏都是透明的是否正确。因为当我更改它时,我可以更改除 mainactivity 之外的所有活动的颜色,mainactivity 仍在 colorprimarydark 下
  • @david 这对你有帮助吗?
【解决方案2】:

尝试在每个活动中使用 android:theme="@style/AppTheme"。

我认为你解决了你的问题。

【讨论】:

  • 我试过了,但它不起作用。但现在我认为 style-v21.xml 中的 '@android:color/transparent' 使所有活动的状态栏都是透明的,但在 android 生产的 mainactivity 中绘制布局studio自动可以在状态栏位置下绘制colorprimarydark中的view,所以左侧导航可以设置在colorprimarydark中toolbar&view上方,subtranslucent状态栏下方。但是不知道是不是真的。。 .
【解决方案3】:

最后,我使用了 Tint Color 库来解决问题,感谢 Jhaman Das。

而且我发现statusBarColor的attr会覆盖colorpromarydark的效果,是drawlayout可以达到理想的效果。愿意就这个问题得到进一步的讨论。

【讨论】:

    猜你喜欢
    • 2015-05-02
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2022-10-14
    • 2019-08-20
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多