2

대부분의 UI 요소에서 "colorControlNormal"색상 변경을 설정할 때 툴바의 항목 만 변경해야한다는 것을 알고 있습니다.툴바 항목 색상 (3 도트)

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="toolbarStyle">@style/ToolBar</item> 
    <item name="android:statusBarColor">@color/PrimaryDarkGreen</item> 

    <item name="colorPrimary">@color/PrimaryGreen</item> 
    <item name="colorAccent">@color/AccentGreen</item> 
    <item name="colorControlNormal">@color/PrimaryWhite</item>   
</style> 

<style name="ToolBar" parent="Widget.AppCompat.Toolbar"> 
    <item name="android:background">@color/PrimaryGreen</item> 
</style> 

screenshot

답변

0
toolbar.setBackgroundColor(Color.parseColor("#80000000")); 

또는

<android.support.v7.widget.Toolbar 
     android:id="@+id/home_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary"/> 

자바 파일이나 XML에 하나 변경을 업데이트.

+1

배경이 아닌 툴바에서 항목을 변경해야합니다. – Mkinitcpio

+0

질문은 도구 모음에있는 항목에 대한 것이지만 배경에 관한 항목이 아닙니다. – iscariot

1

확인합니다. 오버플로 버튼 (3 도트)이 변경됩니다.

public PorterDuffColorFilter colorFilterWhite= new PorterDuffColorFilter(getResources().getColor(R.color.textColorPrimary), PorterDuff.Mode.MULTIPLY); 
final String overflowDescription = getString(R.string.abc_action_menu_overflow_description); 
final ViewGroup decorView = (ViewGroup) getWindow().getDecorView(); 
final ViewTreeObserver viewTreeObserver = decorView.getViewTreeObserver(); 


     viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() { 
       final ArrayList<View> outViews = new ArrayList<View>(); 
       decorView.findViewsWithText(outViews, overflowDescription, 
         View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION); 
       if (outViews.isEmpty()) { 
        return; 
       } 
       AppCompatImageView overflow=(AppCompatImageView) outViews.get(0); 
       overflow.setColorFilter(colorFilterWhite); 
       if(viewTreeObserver.isAlive()) 
        viewTreeObserver.removeOnGlobalLayoutListener(this); 
       else 
        decorView.getViewTreeObserver().removeOnGlobalLayoutListener(this); 
      } 
     });