需求一:使用viewpager+tablayout来实现各种分类视频及其切换,但是当我从第一个tab点击第9个tab时,中间会一下子跳7个页面,这样闪烁的过程其实很难受。于是要求不要有过度的动画
实现方法:
viewPager2.setCurrentItem(targetPosition, false) 源码解释: /** * @param item 要选择的项目索引 * @param smoothScroll 为 True 表示平滑滚动到新item,为 false 表示立即滚动到新item */ public void setCurrentItem(int item, boolean smoothScroll) { if (isFakeDragging()) { throw new IllegalStateException("Cannot change current item when ViewPager2 is fake " + "dragging"); } setCurrentItemInternal(item, smoothScroll); }
tabLayout.addOnTabSelectedListener(object : OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab) {
val targetPosition = tab.position
viewPager2.setCurrentItem(targetPosition, false)
(tab.customView as? TextView)?.apply {
setTextAppearance(selectedTextStyle)
setTextCo