2015-07-18 2 views
-1

Я пытаюсь изменить цвет строки состояния для леденца. Я считаю, что это происходит автоматически, давая стиль в XMLСтрока состояния, не меняющая цвет в lollipop

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

Но это не происходит в моем Nexus 5? Я не уверен, что может быть неправильным?

Может ли кто-нибудь помочь мне с этим?

Вот файл Style.xml для v21:

<style name="Theme.default" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="md_widget_color">@color/bluetext</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="android:windowContentOverlay">@drawable/toolbar_dropshadow</item> 
     <item name="android:windowBackground">@android:color/white</item> 
     <item name="android:editTextColor">@android:color/background_dark</item> 
     <item name="android:textColor">@android:color/background_dark</item> 
     <item name="colorControlNormal">@android:color/background_dark</item> 
     <item name="colorControlActivated">@color/orangeText</item> 
     <item name="colorControlHighlight">@color/numbertext</item> 

    </style> 

Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.ylg.defaultApp" 
    android:versionCode="1" 
    android:versionName="1.1" > 

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="20" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.READ_SMS" /> 
    <uses-permission android:name="android.permission.READ_PROFILE" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.default" > 

     <activity 
      android:name=".Ylg_default" 
      android:excludeFromRecents="true" 
      android:screenOrientation="portrait" 
      android:windowSoftInputMode="adjustPan|adjustResize" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
</application> 

</manifest> 
+0

Вы можете добавить в список AndroidManifest.xml свою активность? – ianhanniballake

+0

@ianhanniballake: Я добавил manifest.xml –

ответ

0

Попробуйте так:

<resources> 
<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="cp">@color/color_primary</item> 
    <item name="cpd">@color/color_secondary</item> 
    <item name="ca">@color/color_accent</item> 
    <item name="android:statusBarColor">@color/color_primary</item> 
</style> 
</resources> 

ВЫВОД:

enter image description here

+0

Эй! судимый не работал для меня. –

+0

положить его в 'v21'? после этого используйте один и тот же 'theme' в файле' manifest'. для тега ' Gattsu

+0

Да. Я уже использую тему .. и попытался добавить, что это не сработало. –

0

Просто замените

<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> 

Надеется, что это помогло

+0

Я пробовал это не сработал .. :( –

0

Вы сделали небольшую ошибку. Я укажу на это, а также упомянул все возможные способы сделать это.

1) Использование styles.xml. Вы можете использовать атрибут android:statusBarColor, чтобы сделать это простым, но статическим способом.

Примечание. Вы также можете использовать этот атрибут с темой Материал.

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="AppTheme" parent="AppTheme.Base"> 
     <item name="android:statusBarColor">@android:color/transparent</item> 
    </style> 
</resources> 

2) Вы можете сделать это динамически с помощью метода setStatusBarColor(int) в Window классе. Но помните, что этот метод доступен только для API 21 или выше. Поэтому не забудьте проверить это, или ваше приложение наверняка потерпит крах на более низких устройствах.

Вот рабочий пример этого метода.

if (Build.VERSION.SDK_INT >= 21) { 
      Window window = getWindow(); 
      window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
      window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
      window.setStatusBarColor(getResources().getColor(R.color.primaryDark)); 
} 

, где primaryDark - это оттенок 700 основного цвета, который я использую в своем приложении. Вы можете определить этот цвет в файле colors.xml.

Уверен, что это решит вашу проблему.

Смежные вопросы