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">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.westone.cx.im.im.imui.view.component.CXViewPager
android:id="@+id/pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/conversation_list_radio_group" />
<TabLayout
android: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.ViewPager2
android:id="@+id/pager"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_above="@+id/conversation_list_radio_group"
android:layout_weight="1" />
<TabLayout
android: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.
原文地址:https://blog.csdn.net/dd06s/article/details/144134720
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!