首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CollapsingToolbarLayout:展开时更改主页按钮颜色

CollapsingToolbarLayout:展开时更改主页按钮颜色
EN

Stack Overflow用户
提问于 2015-06-19 18:55:07
回答 2查看 5.1K关注 0票数 20

我已经实现了Chris Banes示例代码中的新CollapsingToolbarLayout

但是,背景图像视图的图像都是白色背景。工具栏主题是ThemeOverlay.AppCompat.Dark.ActionBar,所以图标也是白色的,因此当CollapsingToolbarLayout完全展开时,我看不到主页按钮。

使用app:expandedTitleTextAppearance,我可以设置标题字段的颜色。是否也可以设置主页按钮和菜单图标的颜色?

EN

回答 2

Stack Overflow用户

发布于 2016-10-23 04:45:03

下面是我如何在布局展开和折叠时更改抽屉和选项图标颜色的示例:

代码语言:javascript
复制
protected void onCreate(Bundle savedInstanceState) {
            AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.app_bar_layout);
            appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
                @Override
                public void onOffsetChanged(AppBarLayout appBarLayout, int offset)
                {
                    Drawable upArrow = ResourcesCompat.getDrawable(getResources(), R.drawable.drawer_icon, null);
                    if (offset < -200)
                    {
                        upArrow.setColorFilter(Color.parseColor("#000000"), PorterDuff.Mode.SRC_ATOP);
                        getSupportActionBar().setHomeAsUpIndicator(upArrow);

                        Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),R.drawable.option_menu_icon);
                        drawable.setColorFilter(Color.parseColor("#000000"), PorterDuff.Mode.SRC_ATOP);
                        toolbar.setOverflowIcon(drawable);
                    }
                    else
                    {

                        upArrow.setColorFilter(Color.parseColor("#ffffff"), PorterDuff.Mode.SRC_ATOP);
                        getSupportActionBar().setHomeAsUpIndicator(upArrow);
                        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

                        Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),R.drawable.option_menu_icon);
                        drawable.setColorFilter(Color.parseColor("#ffffff"), PorterDuff.Mode.SRC_ATOP);
                        toolbar.setOverflowIcon(drawable);
                    }
        }
});
票数 5
EN

Stack Overflow用户

发布于 2015-07-25 11:14:04

主页按钮、溢出按钮和sdk中的一些选择股票图标会受到colorControlNormal的影响。

代码语言:javascript
复制
<style name="ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="colorControlNormal">@color/accent</item>
</style>

如果您有其他图标,则需要遍历并手动过滤它们:

代码语言:javascript
复制
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.sample_actions, menu);

    for(int i = 0; i < menu.size(); i++){
        Drawable drawable = menu.getItem(i).getIcon();
        if(drawable != null) {
            drawable.mutate();
            drawable.setColorFilter(getResources().getColor(R.color.accent), PorterDuff.Mode.SRC_ATOP);
        }
    }

    return true;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30936373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档