如何在折叠时更改工具栏图标颜色

时间:2015-09-27 15:31:37

标签: android android-toolbar android-collapsingtoolbarlayout

我在我的项目中使用CoordinatorLayout。它工作正常,但我需要修复一个问题。我正在使用白色操作栏图标,当CoordinatorLayout展开并且背景颜色为白色时,我看不到任何这些图标。

我在一个应用程序中看到了这个。当CoordinatorLayout展开时,图标会变暗,当向下滚动时,它们会变为白色。

http://i.stack.imgur.com/rCCQb.png

正如您所看到的,当它被展开时,图标是黑暗的,当它关闭时,图标变为白色。

向下滚动直到它完全从黑暗图标转换为白色图标

开始变化

抱歉没有附上代码,这是我的代码:

val rand = SimpleFunction.nullary[Double]("rand")
query.sortBy(x => rand).take(1)

<?xml version="1.0" encoding="utf-8"?>

我该怎么办?

1 个答案:

答案 0 :(得分:5)

您可以执行与此Stack Overflow post中所示类似的操作。感谢tachyonflux

final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
final CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
AppBarLayout appBar = (AppBarLayout)  findViewById(R.id.appbar);

appBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
        @Override
        public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
            if ((collapsingToolbar.getHeight() + verticalOffset) < (2 * ViewCompat.getMinimumHeight(collapsingToolbar))) {
                toolbar.getNavigationIcon().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);
            } else {
                toolbar.getNavigationIcon().setColorFilter(getResources().getColor(R.color.black), PorterDuff.Mode.SRC_ATOP);
            }
        }
    });

同样,您可以将其应用于工具栏或折叠工具栏布局中的任何可绘制图像。