【问题标题】:Runtime change of AppBarLayout colorAppBarLayout 颜色的运行时变化
【发布时间】:2016-07-23 11:23:12
【问题描述】:

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

我已经尝试了以下

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>

【问题讨论】:

    标签: android layout colors runtime appbar


    【解决方案1】:

    您需要获取制表符位置才能控制颜色。 这是示例。

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

    【讨论】:

    • 赞赏,一旦我解决了关键问题,我会尝试,如果它有效,会发布一个勾号。非常感谢。
    • 我可以知道你为什么混合使用 setBackgroundColor 和 setBackgroundResource 吗?我对两者都进行了测试,它似乎对两者都有效。但在 API 21 下,Google Play 应用程序具有某种动画效果。还是不完全一样。我认为 Google Play 应用程序通过应用程序 android:theme="@style/xxx 我认为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多