欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > ViewPager升级ViewPager2笔记

ViewPager升级ViewPager2笔记

2025/12/2 18:54:18 来源:https://blog.csdn.net/dd06s/article/details/144134720  浏览:    关键词:ViewPager升级ViewPager2笔记

原因和收效:
1.ViewPager2支持相同数据不同顺序的界面刷新,ViewPager相同数据只改顺序界面不会刷新;
2.ViewPager2能精确控制每一个fragement的生命周期,即只有在前台的Fragement会收到onResume和onPause,而ViewPager会使所有的Fragent都收到onResume和onPause相关的生命周期

问题1:子Fragment里嵌套ListView,拉到底时反复重绘

有问题的xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><com.westone.cx.im.im.imui.view.component.CXViewPagerandroid:id="@+id/pager"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@+id/conversation_list_radio_group" /><TabLayoutandroid:id="@+id/conversation_list_radio_group"android:layout_width="match_parent"android:layout_height="56dp"android:layout_alignParentBottom="true"app:tabGravity="fill"app:tabIndicatorColor="@color/cx_background_sub_first_color"app:tabMaxWidth="0dp"app:tabMode="fixed"app:tabPaddingEnd="5dp"app:tabPaddingStart="5dp"app:tabRippleColor="#00000000"></TabLayout></RelativeLayout></LinearLayout>

解决方法:重新实现布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><androidx.viewpager2.widget.ViewPager2android:id="@+id/pager"android:layout_width="wrap_content"android:layout_height="0dp"android:layout_above="@+id/conversation_list_radio_group"android:layout_weight="1" /><TabLayoutandroid:id="@+id/conversation_list_radio_group"android:layout_width="match_parent"android:layout_height="56dp"android:layout_alignParentBottom="true"app:tabGravity="fill"app:tabIndicatorColor="@color/cx_background_sub_first_color"app:tabMaxWidth="0dp"app:tabMode="fixed"app:tabPaddingEnd="5dp"app:tabPaddingStart="5dp"app:tabRippleColor="#00000000"></TabLayout></LinearLayout>

问题2:

ViewPager2禁止滑动viewPager2.setUserInputEnabled(false);

问题3:

ViewPager2去除滑动效果viewPager2.setCurrentItem(position,false)

问题4:

切换Fragmnent时,某个Fragment显示不全,不要把Fragment里的布局设置成View.GONE

要使用View.INVISIABLE.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词