2016-04-04 2 views
4

Как приложение Android Google Play динамически меняет цвет, когда пользователь нажимает на AppBarlayout?Изменение времени использования AppBarLayout color

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> 

ответ

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

оценили, попробуем, как только у меня будут решены критические вещи и опубликуют галочку, если это сработает. большое спасибо. – Jai

+0

Могу ли я узнать, почему вы используете смесь setBackgroundColor и setBackgroundResource? Я тестировал оба, кажется, работает для обоих. Но в API 21 приложение Google Play имеет какой-то эффект анимации. Все еще не совсем то же самое. Я думаю, что приложение Google Play достигло его с помощью приложения android: theme = "@ style/xxx я думаю. – Jai

 Смежные вопросы

  • Нет связанных вопросов^_^