2015-06-02 29 views
7

tôi tìm cách để thay đổi màu sắc tiêu đề trong thanh hành động của tôi mà tôi đang cố gắng ra như sau:Thay đổi màu sắc tiêu đề văn bản cho ActionBar trong chủ đề AppCompatActivity

Tôi đã thêm như sau trong Styles.xml tôi (v14)

<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="actionBarStyle">@style/MyTheme.ActionBarStyle</item> 
     <item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item> 
     <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
     <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
     <item name="drawerArrowStyle">@style/AppTheme.DrawerArrowToggle</item> 
     <item name="colorAccent">@color/greenText</item> 
    </style> 

    <style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar"> 
     <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
     <item name="background">@color/whiteText</item> 
    </style> 

    <style name="AppTheme.DrawerArrowToggle" parent="Base.Widget.AppCompat.DrawerArrowToggle"> 
     <item name="color">@android:color/black</item> 
    </style> 

    <style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> 
     <item name="android:textColor">@color/actionbar_blackText</item> 
    </style> 

Trong tệp kê khai của tôi: Tôi sử dụng cùng một chủ đề.

Trong Hoạt động lớp của tôi: Tôi đã thay đổi FragmentActivity để AppCompatActivity

các OnCreate trông như thế này:

@Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     getSupportActionBar().setDisplayOptions(getSupportActionBar().getDisplayOptions() | android.support.v7.app.ActionBar.DISPLAY_SHOW_CUSTOM); 
     ImageView imageView = new ImageView(getSupportActionBar().getThemedContext()); 
     imageView.setScaleType(ImageView.ScaleType.CENTER); 
     imageView.setImageResource(R.drawable.logoforactionbar); 
     android.support.v7.app.ActionBar.LayoutParams layoutParams = new android.support.v7.app.ActionBar.LayoutParams(android.support.v7.app.ActionBar.LayoutParams.WRAP_CONTENT, android.support.v7.app.ActionBar.LayoutParams.WRAP_CONTENT, Gravity.END | Gravity.CENTER_VERTICAL); 
     layoutParams.rightMargin = 20; 
     imageView.setLayoutParams(layoutParams); 
     getSupportActionBar().setCustomView(imageView); 

     getSupportActionBar().setTitle(getResources().getString(R.string.register_new)); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setHomeButtonEnabled(true); 
     getSupportActionBar().setIcon(android.R.color.transparent); 

     setContentView(R.layout.register_new); 
    } 

Nhưng màu sắc tiêu đề văn bản không thay đổi hoặc tôi không nhìn thấy màu đen lên mũi tên quá. Văn bản và mũi tên có màu trắng ...

Thật lạ khi cùng hoạt động tốt trên một AppCompatActivity khác cũng có ngăn điều hướng.

tôi nhận được kết quả như thế này:

enter image description here

Tôi đã cắt một phần logo. Dù sao, phải có tiêu đề đen và mũi tên màu đen nhưng không hiển thị.

Trả lời

16

Bạn chỉ cần dán này và thay đổi màu sắc của bạn trong XML này với riêng bạn

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimaryDark">#cc0986ff</item> 
    <item name="colorPrimary">#ff0c84e8</item> 
    <item name="android:textColorPrimary">#fdfff2</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">#ff0043c5</item> 
    <item name="colorControlHighlight">#ffcb6345</item> 
</style> 
+0

Cảm ơn bạn đã trả lời nhanh chóng. Tôi đã sử dụng chủ đề của bạn và thay đổi màu chính thành màu trắng và cửa sổ nền, màu văn bản: thành màu đen nhưng vẫn không đổi màu. Nó vẫn còn đầy đủ màu trắng .. không có văn bản hoặc mũi tên màu đen. – TheDevMan

+0

Bạn có thể chỉ sử dụng màu đục. Mã màu của tôi hoạt động trong ứng dụng của bạn? –

+0

Yep mã màu của bạn đang hoạt động. Tôi đang thử trên Galaxy Nexus 4.3 – TheDevMan

0

Juat thêm dòng dưới đây vào styles.xml bạn

<item name="colorPrimaryDark">your status bar background color</item> 
<item name="colorPrimary">@color/tool bar background color</item> 
<item name="android:textColorPrimary">tool bar text color</item> 
<item name="android:windowBackground">tool bar text color</item> 
Các vấn đề liên quan