运行时更改AppBarLayout颜色

时间:2016-04-04 02:45:16

标签: android layout colors runtime appbar

Android Google Play应用如何在用户点击AppBarlayout时动态更改颜色?

enter image description here API 21 Lollipop 我试过以下

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener()
{
    @Override
    public void onTabSelected(TabLayout.Tab tab)
    {
        setTheme(R.style.AppTheme_2);
    }
}

<style name="AppTheme_2" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary_2</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark_2</item>
    <item name="colorAccent">@color/colorAccent_2</item>
</style>

1 个答案:

答案 0 :(得分:0)

您需要获取标签位置才能操纵颜色。 这是一个例子。

 mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            Log.e(TAG, String.valueOf(tab.getPosition()));

            switch (tab.getPosition()){
                case 0:
                    mAppBar.setBackgroundResource(R.color.colorPrimary);
                    break;
                case 1:
                    mAppBar.setBackgroundResource(R.color.colorPrimary);
                    break;
                case 2:
                    mAppBar.setBackgroundColor(Color.BLACK);
                    break;
            }
        }