此处bug:
java.lang.IllegalStateException: Pages must fill the whole ViewPager2 (use match_parent)
遇到bug 不要慌,百度一下
几乎都是说adapter里的item layout没有设置match_parent,反复查看代码,明明确确设置了match_parent,这个小问题,折腾了许久,最后找到了一个和我同病相怜的老哥
说一样原理都一样,都是viewBinding引起的,只是我用的是反射获取的binding
贴一下错误代码
val method = clazz.getMethod("inflate", LayoutInflater::class.java)
var vb = method.invoke(parent, LayoutInflater.from(mContext)) as VB
vb.root.layoutParams = RecyclerView.LayoutParams(
RecyclerView.LayoutParams.MATCH_PARENT,
RecyclerView.LayoutParams.WRAP_CONTENT //此处有导致bug,改为MATCH_PARENT
)
或者以上三行直接改为:
val method = clazz.getMethod("inflate", LayoutInflater::class.java,ViewGroup::class.java,Boolean::class.java)
var vb = method.invoke(null, LayoutInflater.from(parent.context),parent,false) as VB