1

Я пытаюсь изменить цвет ActionBar в своем приложении. Цвет был изменен в окне предварительного просмотра при открытии файла макета, но не тогда, когда я запускаю его на своем устройстве (5.0.1). Мне нужно, чтобы строка состояния была также окрашена.Цвет ActionBar не меняется

Вот мой styles.xml

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 

    <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
     <item name="android:actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <style name="Test" parent="android:Theme.Material.Light"> 
     <item name="android:actionBarStyle">@style/TestActionBar</item> 
    </style> 

    <style name="TestActionBar" parent="@android:style/Widget.Holo.ActionBar"> 
     <item name="android:background">@color/primary_dark</item> 
     <item name="android:statusBarColor">@color/primary_dark</item> 
     <!--<item name="android:colorPrimary">@color/primary_dark</item>--> 
     <!--<item name="android:actionMenuTextColor">#FFFFFF</item>--> 
    </style> 

    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
     <item name="android:background">@color/primary_darker</item> 
    </style> 

    <style name="AppTheme.Dark" parent="Theme.AppCompat.NoActionBar"> 
     <item name="colorPrimary">@color/primary</item> 
     <item name="colorPrimaryDark">@color/primary_dark</item> 
     <item name="colorAccent">@color/accent</item> 

     <item name="android:windowBackground">@color/primary</item> 

     <item name="colorControlNormal">@color/iron</item> 
     <item name="colorControlActivated">@color/white</item> 
     <item name="colorControlHighlight">@color/white</item> 
     <item name="android:textColorHint">@color/iron</item> 

     <item name="colorButtonNormal">@color/primary_darker</item> 
     <item name="android:colorButtonNormal">@color/primary_darker</item> 
    </style> 

    <style name="AppTheme.Dark.Dialog" parent="Theme.AppCompat.Dialog"> 
     <item name="colorAccent">@color/white</item> 
     <item name="android:textColorPrimary">@color/iron</item> 
     <item name="android:background">@color/primary</item> 
    </style> 

</resources> 

Мой manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.motassem.beacontest" > 

    <uses-permission android:name="android.permission.BLUETOOTH" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Material.Light.DarkActionBar" >   
     <activity 
      android:name=".TestActivity" 
      android:label="@string/app_name" > 
     </activity> 
     <activity 
      android:name=".LoginActivity" 
      android:theme="@style/AppTheme.Dark" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".SignupActivity" 
      android:theme="@style/AppTheme.Dark" > 
     </activity> 
     <activity 
      android:name=".HomeActivity" 
      android:label="@string/title_activity_home" > 
     </activity> 
    </application> 

</manifest> 

Мой layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:name="com.example.motassem.beacontest.HomeActivityFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context=".HomeActivity"> 

    <fragment  android:name="com.example.motassem.beacontest.HomeActivityFragment" 
     android:id="@+id/frag_total" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:layout="@layout/fragment_home" /> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:layout_marginBottom="15dp" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:background="@android:color/black" /> 

    <ListView 
     android:id="@+id/listView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center_horizontal" /> 
</LinearLayout> 

И мой fragment.xml

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="@string/string_total_saved" 
    android:id="@+id/tvTotal" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="Large Text" 
    android:textSize="40sp" 
    android:id="@+id/textView2" 
    android:layout_below="@+id/tvTotal" 
    android:layout_centerHorizontal="true" /> 

Редактировать После добавления AppTheme в style.xml продукта позволяет, бар действие отсутствует.

enter image description here

+0

Какую деятельность вы используете? Вы устанавливаете тему материала в своем теге приложения, а другую в функции RegistrationActivity. –

+0

да как gabrield упомянутый .. мимо вашего кода пожалуйста – Moudiz

+0

@GabrieleMariotti Спасибо, ребята, я изменил тему приложения, и это сработало. Но строка состояния все еще не окрашена. –

ответ

2

В вашей Activity (который должен направить AppCompatActivity) или в вашем Application вы должны использовать AppCompat тему.

Если вы не используете в вашем использовании макет Toolbar somenthing как:

<style name="AppTheme" parent="Theme.AppCompat"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/primary</item> 
     <item name="colorPrimaryDark">@color/primary_dark</item> 
     <item name="colorAccent">@color/accent</item> 
</style> 

В противном случае, если вы используете Toolbar использование:

<style name="AppTheme.NoActionBar" > 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

enter image description here

+0

Пожалуйста, проверьте приведенные выше изменения. –

+0

Обновлено. Это зависит от того, используете ли вы панель инструментов в своем макете или нет. –

+0

Ничего не изменилось .. –

0

Я добавил следуя стилю.xml и применил его для моей деятельности

<style name="Accelerator" parent="@style/Theme.AppCompat"> 
     <item name="colorPrimary">@color/primary</item> 
     <item name="colorPrimaryDark">@color/primary_dark</item> 
     <item name="colorAccent">@color/primary_dark</item> 
     <item name="colorControlHighlight">@color/primary_darker</item> 
     <item name="colorControlActivated">@color/white</item> 
     <item name="android:navigationBarColor">@color/primary</item> 
     <item name="android:statusBarColor">@color/primary_dark</item> 
     <item name="android:textColorPrimary">@color/accent</item> 
</style> 
Смежные вопросы