android - AppBarLayout 颜色的运行时更改

标签 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>

最佳答案

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

 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;
            }
        }

关于android - AppBarLayout 颜色的运行时更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393840/

相关文章:

c - 是否可以将 GtkLayouts 放入 GtkLayout 中?

xml - Android 布局文件中的所有小部件都需要 layout_width 和 layout_height 吗?

android - 打印出颜色字符串 [Android]

javascript - highcharts 热图 : arbitrarily set cell colors

Android:每个线程有多个处理程序可以吗

java - Android - 将 ARGB 颜色转换为 HEX

java - Android 模拟器,查找模拟用户位置坐标。有问题

android - 在 android 中显示 Strings.xml 文件中的项目符号列表

WPF - 如何将边框停靠到 Canvas 上?

ios - CAEmitterCell 颜色属性不起作用