正在折叠appBarLayout时更改菜单项的颜色

时间:2018-02-18 17:33:07

标签: android toolbar menuitem android-appbarlayout

在折叠appBarLayout时更改工具栏背景颜色 我使用了下面的代码

AppBarLayout appBarLayout = findViewById(R.id.app_bar);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
        float offset = (float) Math.abs(verticalOffset) / appBarLayout.getTotalScrollRange();
        toolbar.getBackground().setAlpha((int) (offset * 255));
    }
});

现在我想更改appBarLayout折叠时工具栏上的菜单项的颜色,如下面样本

Expected Result

1 个答案:

答案 0 :(得分:0)

Menu mItem;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    mItem = menu;

    getMenuInflater().inflate(R.menu.bookmark_menu, menu);
    return super.onCreateOptionsMenu(menu);
}

获取menu.in你的offsetchangelistener

的参考
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener()
        {
            @Override
            public void onOffsetChanged (AppBarLayout appBarLayout,int verticalOffset){
            float offset = (float) Math.abs(verticalOffset) / appBarLayout.getTotalScrollRange();
            toolbar.getBackground().setAlpha((int) (offset * 255));
            mItem.findViewById(R.id.example).getIcon().setColorFilter(ContextCompat.getColor(ActivityHome.this, R.color.yourcolor), PorterDuff.Mode.SRC_IN);
        }
        });