1.MotionLayout+ViewPager实现
前几天我完成了MotionLayout
+NavHostFragment
导航组合,但是并不能实现滑动切换,理想的导航栏远不应止于此。如果可以加上ViewPager
的滑动功能就好了。简单实现了一下,其实只要MotionLayout
和任何容纳Fragment
的组件(比如ViewPager
)能够互相绑定调用切换就不算任何问题。
初始化默认的MotionLayout
切换其他导航按钮时消失过慢的问题。
2.ViewPager调用setCurrentItem(0)时,匿名内部类监听器OnPageChangeListener.onPageSelected()不响应
因为ViewPager
里面已对MotionLayout
联动播放动画,所以打算在打开应用初始化时直接利用ViewPager
调用setCurrentItem(0)
顺便对第一个MotionLayout
初始化选中,但是setCurrentItem(0)
这个方法被调用却未能引起OnPageChangeListener.onPageSelected()
的响应,失望至极,后来测试才知道如果对ViewPager
不设置初始Fragment
的话,会默认生成第一个Fragment
,此时0号
为已选中状态,监听器就是不执行从第一个跳至第一个的逻辑。
经实测,可取消内部类的用法,直接用正常实例化对象的方式,得到一个带名的OnPageChangeListener
对象,直接强制调用其onPageSelected()
方法,传参为0,即可强制让onPageSelected(0)
响应。
不过并没有解决初始化默认的MotionLayout
(即第一个tab)切换其他导航按钮时消失过慢的问题。