2

Я знаю, что когда я устанавливаю изменение цвета colorControlNormal в большинстве элементов ui, но мне нужно изменить только элементы на панели инструментов.Цвет элемента панели инструментов (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> 

Update 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"/> 

Внести изменения либо в Java файле или в формате 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); 
      } 
     });