1
1
package com .azhon .mvvm .lazy ;
2
2
3
- import androidx .annotation .Nullable ;
3
+ import androidx .annotation .NonNull ;
4
4
import androidx .fragment .app .Fragment ;
5
- import androidx .fragment .app .FragmentPagerAdapter ;
6
- import androidx .viewpager .widget .ViewPager ;
5
+ import androidx .fragment .app .FragmentActivity ;
6
+ import androidx .viewpager2 .adapter .FragmentStateAdapter ;
7
+ import androidx .viewpager2 .widget .ViewPager2 ;
7
8
8
9
import com .azhon .basic .base .BaseNoModelActivity ;
9
10
import com .azhon .mvvm .R ;
10
11
import com .azhon .mvvm .databinding .ActivityLazyBinding ;
11
12
import com .google .android .material .tabs .TabLayout ;
13
+ import com .google .android .material .tabs .TabLayoutMediator ;
12
14
13
15
import java .util .ArrayList ;
14
16
import java .util .List ;
@@ -36,7 +38,7 @@ protected int onCreate() {
36
38
@ Override
37
39
protected void initView () {
38
40
setTitle ("Fragment懒加载使用示例" );
39
- ViewPager viewPager = dataBinding .viewPager ;
41
+ ViewPager2 viewPager = dataBinding .viewPager ;
40
42
TabLayout tabLayout = dataBinding .tabLayout ;
41
43
42
44
list .add (LazyFragment .newInstance ("5562b419e4b00c57d9b94ae2" ));
@@ -51,10 +53,14 @@ protected void initView() {
51
53
tabLayout .addTab (tabLayout .newTab ().setText (title [2 ]), 2 );
52
54
tabLayout .addTab (tabLayout .newTab ().setText (title [3 ]), 3 );
53
55
54
- MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter ();
56
+ MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter (this );
55
57
viewPager .setAdapter (adapter );
56
- tabLayout .setupWithViewPager (viewPager );
57
- tabLayout .setTabsFromPagerAdapter (adapter );
58
+ new TabLayoutMediator (tabLayout , viewPager , new TabLayoutMediator .TabConfigurationStrategy () {
59
+ @ Override
60
+ public void onConfigureTab (@ NonNull TabLayout .Tab tab , int position ) {
61
+ tab .setText (title [position ]);
62
+ }
63
+ }).attach ();
58
64
59
65
}
60
66
@@ -63,25 +69,21 @@ protected void initData() {
63
69
64
70
}
65
71
66
- private class MyFragmentPagerAdapter extends FragmentPagerAdapter {
67
- public MyFragmentPagerAdapter () {
68
- super (LazyActivity .this .getSupportFragmentManager ());
72
+ public class MyFragmentPagerAdapter extends FragmentStateAdapter {
73
+
74
+ public MyFragmentPagerAdapter (@ NonNull FragmentActivity fragmentActivity ) {
75
+ super (fragmentActivity );
69
76
}
70
77
71
78
@ Override
72
- public Fragment getItem (int position ) {
79
+ public Fragment createFragment (int position ) {
73
80
return list .get (position );
74
81
}
75
82
76
83
@ Override
77
- public int getCount () {
84
+ public int getItemCount () {
78
85
return list .size ();
79
86
}
80
-
81
- @ Nullable
82
- @ Override
83
- public CharSequence getPageTitle (int position ) {
84
- return title [position ];
85
- }
86
87
}
88
+
87
89
}
0 commit comments