ban*_*ing 14 android android-fragments android-viewpager android-viewpager2
这个问题是针对新的ViewPager2类的。
旧的 ViewPager有一个类似的问题,但解决方案需要扩展ViewPager。但是,ViewPager2 是最终版本,因此无法扩展。
在我的情况下,我有一个包含三个不同片段的 ViewPager2。其中一个片段比其他两个片段高得多,这意味着当您滑动到较短的片段之一时,会有很多空白空间。那么如何有效地将 ViewPager2 包裹到当前片段的高度呢?
解决方案是在属于 的每个片段中添加以下内容ViewPager2:
override fun onResume() {
super.onResume()
binding.root.requestLayout()
}
Run Code Online (Sandbox Code Playgroud)
binding.root从ViewBinding /数据绑定,但它是你的布局,即主容器ConstraintLayout,LinearLayout等等。
我对这个解决方法一点也不满意,但它确实解决了我在尝试使用具有不同高度片段的 ViewPager2 时遇到的渲染问题。它显然会减慢渲染速度并消耗更多内存。
myStupidViewPager2.offscreenPageLimit = fragments.size
Run Code Online (Sandbox Code Playgroud)
小智 0
对我来说,设置 viewpager2 的 recyclerview 布局参数可以解决这个问题。
尝试
<androidx.viewpager2.widget.ViewPager2
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
并设置 recyclerview 布局参数
RecyclerView recyclerView = (RecyclerView) viewPager.getChildAt(0);
recyclerView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6871 次 |
| 最近记录: |