2014-07-21 5 views
2

사용자 지정 style을 사용하여 내 작업 표시 줄 항목의 텍스트 색을 설정하려고 시도했지만 효과가 없습니다.작업 표시 줄 설정 항목 텍스트 색상?

내가 해봤 설정 :

<item name="android:actionMenuTextColor">@style/AppTheme.ActionBar.Text</item> 
는 효과가 없습니다 모두 <style name="ActionBar"에서

<style name="AppTheme".

07-21 13:12:58.519: E/AndroidRuntime(24690): FATAL EXCEPTION: main 
07-21 13:12:58.519: E/AndroidRuntime(24690): android.view.InflateException: Binary XML file line #17: Error inflating class com.android.internal.view.menu.ActionMenuItemView 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.LayoutInflater.createView(LayoutInflater.java:619) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.LayoutInflater.inflate(LayoutInflater.java:467) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.BaseMenuPresenter.createItemView(BaseMenuPresenter.java:157) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.BaseMenuPresenter.getItemView(BaseMenuPresenter.java:176) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:306) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.ActionMenuPresenter.flagActionItems(ActionMenuPresenter.java:593) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.MenuBuilder.flagActionItems(MenuBuilder.java:1048) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.BaseMenuPresenter.updateMenuView(BaseMenuPresenter.java:91) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.ActionMenuPresenter.updateMenuView(ActionMenuPresenter.java:334) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.MenuBuilder.dispatchPresenterUpdate(MenuBuilder.java:244) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.MenuBuilder.onItemsChanged(MenuBuilder.java:946) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.MenuBuilder.startDispatchingItemsChanged(MenuBuilder.java:969) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:507) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at  com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:851) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:258) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.Choreographer.doFrame(Choreographer.java:531) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.os.Handler.handleCallback(Handler.java:725) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.os.Looper.loop(Looper.java:137) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.app.ActivityThread.main(ActivityThread.java:5328) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at java.lang.reflect.Method.invokeNative(Native Method) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at java.lang.reflect.Method.invoke(Method.java:511) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at dalvik.system.NativeStart.main(Native Method) 
07-21 13:12:58.519: E/AndroidRuntime(24690): Caused by: java.lang.reflect.InvocationTargetException 
07-21 13:12:58.519: E/AndroidRuntime(24690): at java.lang.reflect.Constructor.constructNative(Native Method) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.view.LayoutInflater.createView(LayoutInflater.java:593) 
07-21 13:12:58.519: E/AndroidRuntime(24690): ... 29 more 
07-21 13:12:58.519: E/AndroidRuntime(24690): Caused by: android.content.res.Resources$NotFoundException: Resource is not a ColorStateList (color or path): TypedValue{t=0x1/d=0x7f0c008f a=3 r=0x7f0c008f} 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.content.res.Resources.loadColorStateList(Resources.java:2963) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.content.res.TypedArray.getColorStateList(TypedArray.java:343) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at android.widget.TextView.<init>(TextView.java:851) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.ActionMenuItemView.<init>(ActionMenuItemView.java:116) 
07-21 13:12:58.519: E/AndroidRuntime(24690): at com.android.internal.view.menu.ActionMenuItemView.<init>(ActionMenuItemView.java:112) 

가 나는 또한도 효과가 없습니다 android:itemTextAppearance를 사용하여 시도했다 : 나는 후자를 할 경우, 내 응용 프로그램과 충돌합니다.

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

<!-- Base application theme, dependent on API level. This theme is replaced 
    by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 
--> 
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Theme customizations available in newer API levels can go in 
     res/values-vXX/styles.xml, while customizations related to 
     backward-compatibility can go here. --> 
</style> 

<!-- Application theme. --> 

<style name="AppTheme" parent="AppBaseTheme"> 

    <item name="android:actionBarStyle">@style/ActionBar</item> 
    <item name="android:actionBarTabTextStyle">@style/ActionBarTabText</item> 

    <item name="android:itemTextAppearance">@style/TextAppearance</item> 

    <item name="actionBarStyle">@style/ActionBar</item> 
    <item name="actionBarTabTextStyle">@style/ActionBarTabText</item> 
</style> 

<!-- Action Bar --> 

<style name="ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> 

    <item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item> 
    <item name="android:actionMenuTextColor">@style/AppTheme.ActionBar.Text</item> 
    <item name="android:background">@color/Black</item> 

    <item name="titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item> 
    <item name="actionMenuTextColor">@style/AppTheme.ActionBar.Text</item> 

</style> 

<style name="AppTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">@color/White</item> 
</style> 


<style name="AppTheme.ActionBar.Text" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">@color/White</item> 
</style> 


<!-- Action Bar Tabs --> 
<style name="AppTheme.Tabtheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarTabTextStyle">@style/ActionBarTabText</item> 
    <item name="actionBarTabTextStyle">@style/ActionBarTabText</item> 
</style> 

<style name="ActionBarTabText" parent="@style/Widget.AppCompat.Base.ActionBar.TabText"> 
    <item name="android:textColor">@color/White</item> 
</style> 

<!-- Text color for Action bar items --> 

<style name="TextAppearance"> 
    <item name="android:textColor">@android:color/white</item> 
</style> 

</resources> 

답변

1

쉽게 안드로이드 작업 표시 줄에 대한 사용자 정의보기를 설정 할 수있다 .. 이런 식으로 액션 바에 대한

먼저 설정 사용자 지정보기 아래의 사항을 지켜 주시기 바랍니다 ..

:

내이 styles.xml입니다
actionBar = getSupportActionBar(); 
actionBar.setCustomView(R.layout.action_provider); 

이제 텍스트보기를 "action_provider"레이아웃에 넣으십시오.

지금 당신이 할 수있는이

pack_tv.setTextColor("your_text_color"); 

처럼 .. 귀하의 경우 설정 텍스트보기 색상에서 .. 지금 당신은 쉽게 당신이 원하는 무엇도 할 수있는이

pack_tv = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_tv); 

처럼 텍스트 뷰 ID를 얻을 어떤 것이 든 .. 아래 코드를 확인하십시오.

actionBar = getSupportActionBar(); 
     actionBar.setCustomView(R.layout.action_provider); 
     iv_d = (ImageView) actionBar.getCustomView().findViewById(R.id.action_menu); 
     pack_tv = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_tv); 
     spinner_value = (TextView) actionBar.getCustomView().findViewById(R.id.action_city); 
     city_spinner = (LinearLayout) actionBar.getCustomView().findViewById(R.id.city_spinner_layout); 
     pack_spinner = (LinearLayout) actionBar.getCustomView().findViewById(R.id.pack_spinner_layout); 
     dashiv1 = (ImageView) actionBar.getCustomView().findViewById(R.id.dash_iv1); 
     dashiv2 = (ImageView) actionBar.getCustomView().findViewById(R.id.dash_iv2); 

     dashiv1.setVisibility(View.GONE); 
     dashiv2.setVisibility(View.GONE); 

     iv_d.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

      } 
     }); 

그게 ... 너는가 좋은데.

관련 문제