Я разрабатываю приложение для Android, имеющее 3 вкладки. Я использую TabLayout
и ViewPager
. Я планировал дать 3 разных цвета фона для AppBar & TabLayout на 3 разных вкладках. Мне нужно сделать плавный переход между цветами при смене вкладок с помощью прокрутки или нажатием на вкладки. Как вы делаете этот переход? Кто-нибудь может мне помочь?Изменение цвета фона Tablayout при прокрутке
0
A
ответ
2
сделаю образец. надеюсь это поможет.
В вашей деятельности:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tablayout);
int[] colors = {Color.RED, Color.GREEN, Color.BLUE};
viewPager.setAdapter(new MyAdapter());
viewPager.addOnPageChangeListener(new HeaderColorChanger(tabLayout, colors));
tabLayout.setupWithViewPager(viewPager);
}
MyAdapter как это:
class MyAdapter extends PagerAdapter {
@Override
public Object instantiateItem(ViewGroup container, int position) {
TextView view = (TextView) LayoutInflater
.from(container.getContext())
.inflate(R.layout.row_item, container, false);
container.addView(view);
view.setText("Page:" + position);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return 3;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public CharSequence getPageTitle(int position) {
return "Page:" + position;
}
}
HeaderColorChanger как это:
class HeaderColorChanger implements ViewPager.OnPageChangeListener {
private ArgbEvaluator argbEvaluator = new ArgbEvaluator();
private View mView;
private int[] mColors;
HeaderColorChanger(View view, int[] colors) {
mView = view;
mColors = colors;
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
mView.setBackgroundColor(getHeaderColor(position, positionOffset));
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
private int getHeaderColor(int position, float positionOffset) {
if (position == mColors.length - 1) {
return mColors[position];
}
int startColor = mColors[position];
int endColor = mColors[position + 1];
int color = (int) argbEvaluator.evaluate(positionOffset, startColor, endColor);
return color;
}
}
Смежные вопросы
- 1. jQuery - изменение цвета фона на прокрутке
- 2. Динамическое изменение цвета фона UITableViewCell на прокрутке
- 3. Изменение цвета фона элемента списка в прокрутке,
- 4. TabLayout изменение цвета tabText
- 5. Изменение фонового цвета при прокрутке
- 6. Изменение цвета фона несколько раз при прокрутке страницы
- 7. Изменение цвета фона навигации при прокрутке вверх JQUERY
- 8. Изменение цвета фона при прокрутке в определенном положении
- 9. Изменение цвета фона при выборе
- 10. Изменение цвета фона при выборе
- 11. Изменение цвета фона при зависании
- 12. Изменение цвета фона при зависании
- 13. Изменения цвета фона в iOS при прокрутке
- 14. выбранные изменения цвета фона UITableViewCell при прокрутке
- 15. Изменение линейного цвета фона фона при нажатии
- 16. Изменение выбранного фона вкладки и цвета текста TabLayout
- 17. Изменение цвета на прокрутке
- 18. Случайное изменение цвета фона
- 19. Android фона изменение цвета
- 20. Изменение цвета фона CFWindow
- 21. Изменение фона Nav Bar при прокрутке
- 22. WordPress navbar изменение фона при прокрутке
- 23. Изменение цвета границы при прокрутке/зависании кнопки
- 24. Изменение цвета оттенка UIButton при прокрутке
- 25. Изменение цвета тега nav при прокрутке
- 26. Изменение цвета DIV при прокрутке вниз
- 27. Изменение цвета фона Java
- 28. Изменение цвета фона постоянно
- 29. Изменение цвета фона UIView
- 30. Изменение цвета фона onclick