我一直在寻找一种方法来动态更改工具栏(如ActionBar)中所有元素的颜色。
规格:
parent="Theme.AppCompat.Light.NoActionBar"在styles.xml上使用setSupportActionBar()在我的AppCompatActivity我已阅读以下帖子:
我现在正在做的是在工具栏上搜索ImageButton(在support actionbar中获取对抽屉切换的引用),然后setColorFilter()像下面的代码一样将它们应用于所有对象:
for (int i = 0; i < toolbar.getChildCount(); i++){
if (toolbar.getChildAt(i) instanceof ImageButton) {
ImageButton ib = (ImageButton) toolbar.getChildAt(i);
ib.setColorFilter(Color.parseColor("#A74231"), PorterDuff.Mode.SRC_ATOP);
}
}
Run Code Online (Sandbox Code Playgroud)
我改变的背景和文本颜色搭配:toolbar.setBackgroundColor和toolbar.setTitleTextColor。
对于菜单图标(包括溢出菜单图标):
MenuItem item2 = mMenu.findItem(R.id.actionbar_group_moreoverflow);
item2.getIcon().setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
Run Code Online (Sandbox Code Playgroud)
的问题:有没有更好的办法做到这一点(改变工具栏的元素色彩动态)?
android android-appcompat android-imagebutton android-toolbar