diff --git a/app/src/main/java/com/chwl/app/avroom/activity/RoomRankListActivity.java b/app/src/main/java/com/chwl/app/avroom/activity/RoomRankListActivity.java index 17bc10c7d..fdc844277 100644 --- a/app/src/main/java/com/chwl/app/avroom/activity/RoomRankListActivity.java +++ b/app/src/main/java/com/chwl/app/avroom/activity/RoomRankListActivity.java @@ -7,8 +7,10 @@ import android.view.View; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.viewpager.widget.ViewPager; +import androidx.viewpager2.widget.ViewPager2; import com.chwl.app.R; +import com.chwl.app.avroom.adapter.CommonVPAdapter; import com.chwl.app.avroom.fragment.RoomCharmListFragment; import com.chwl.app.avroom.fragment.RoomContributeListFragment; import com.chwl.app.base.BaseBindingActivity; @@ -39,18 +41,8 @@ public class RoomRankListActivity extends BaseBindingActivity list = new ArrayList<>(); list.add(RoomCharmListFragment.newInstance()); list.add(new RoomContributeListFragment()); - mBinding.viewPager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) { - @Override - public Fragment getItem(int position) { - return list.get(position); - } - - @Override - public int getCount() { - return list.size(); - } - }); - mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + mBinding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager(),getLifecycle(),list)); + mBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){ @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/RoomCharmListFragment.java b/app/src/main/java/com/chwl/app/avroom/fragment/RoomCharmListFragment.java index 52aaa20fd..cfa332f12 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/RoomCharmListFragment.java +++ b/app/src/main/java/com/chwl/app/avroom/fragment/RoomCharmListFragment.java @@ -3,6 +3,7 @@ package com.chwl.app.avroom.fragment; import androidx.fragment.app.Fragment; import com.chwl.app.R; +import com.chwl.app.avroom.adapter.CommonVPAdapter; import com.chwl.app.avroom.adapter.RoomContributeListAdapter; import com.chwl.app.avroom.widget.RankNavigatorAdapter; import com.chwl.app.base.BaseBindingFragment; @@ -26,7 +27,7 @@ public class RoomCharmListFragment extends BaseBindingFragment fragments = new ArrayList<>(2); fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING)); fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_WEEK_RANKING)); - mBinding.vpCharmRankings.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragments)); + mBinding.vpCharmRankings.setAdapter(new CommonVPAdapter(getChildFragmentManager(), getLifecycle(),fragments)); CommonNavigator commonNavigator = new CommonNavigator(getActivity()); commonNavigator.setAdjustMode(false); diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/RoomContributeListFragment.java b/app/src/main/java/com/chwl/app/avroom/fragment/RoomContributeListFragment.java index 45a464bf6..cb9d16434 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/RoomContributeListFragment.java +++ b/app/src/main/java/com/chwl/app/avroom/fragment/RoomContributeListFragment.java @@ -2,8 +2,10 @@ package com.chwl.app.avroom.fragment; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import androidx.viewpager2.widget.ViewPager2; import com.chwl.app.R; +import com.chwl.app.avroom.adapter.CommonVPAdapter; import com.chwl.app.avroom.adapter.RoomContributeListAdapter; import com.chwl.app.avroom.widget.RankNavigatorAdapter; import com.chwl.app.base.BaseMvpFragment; @@ -21,7 +23,7 @@ import java.util.ArrayList; */ public class RoomContributeListFragment extends BaseMvpFragment implements IMvpBaseView { - private ViewPager viewPager; + private ViewPager2 viewPager; private MagicIndicator viewIndicator; @Override @@ -43,7 +45,7 @@ public class RoomContributeListFragment extends BaseMvpFragment implements IMvpB if (AvRoomDataManager.get().isDatingMode()) { fragments.add(RoomContributeFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_MONTH_RANKING)); } - viewPager.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragments)); + viewPager.setAdapter(new CommonVPAdapter(getChildFragmentManager(),getLifecycle(), fragments)); CommonNavigator commonNavigator = new CommonNavigator(getActivity()); commonNavigator.setAdjustMode(false); RankNavigatorAdapter indicator = new RankNavigatorAdapter(AvRoomDataManager.get().isDatingMode()); diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/RoomRankListFragment.java b/app/src/main/java/com/chwl/app/avroom/fragment/RoomRankListFragment.java index 9c5fe6f17..cf07c469a 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/RoomRankListFragment.java +++ b/app/src/main/java/com/chwl/app/avroom/fragment/RoomRankListFragment.java @@ -5,6 +5,7 @@ import android.view.View; import androidx.fragment.app.Fragment; import com.chwl.app.R; +import com.chwl.app.avroom.adapter.CommonVPAdapter; import com.chwl.app.avroom.adapter.RoomContributeListAdapter; import com.chwl.app.avroom.widget.RoomRankNavigatorAdapter; import com.chwl.app.base.BaseBindingFragment; @@ -29,7 +30,7 @@ public class RoomRankListFragment extends BaseBindingFragment list = new ArrayList<>(2); list.add(new RoomContributeListFragment()); list.add(RoomCharmListFragment.newInstance()); - mBinding.viewPager.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), list)); + mBinding.viewPager.setAdapter(new CommonVPAdapter(getChildFragmentManager(), getLifecycle(), list)); CommonNavigator commonNavigator = new CommonNavigator(getActivity()); commonNavigator.setAdjustMode(true); diff --git a/app/src/main/java/com/chwl/app/avroom/recommendcard/MyRecommendCardActivity.java b/app/src/main/java/com/chwl/app/avroom/recommendcard/MyRecommendCardActivity.java index 0edd30f03..23cb56cd7 100644 --- a/app/src/main/java/com/chwl/app/avroom/recommendcard/MyRecommendCardActivity.java +++ b/app/src/main/java/com/chwl/app/avroom/recommendcard/MyRecommendCardActivity.java @@ -9,6 +9,7 @@ import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; import com.chwl.app.R; +import com.chwl.app.avroom.adapter.CommonVPAdapter; import com.chwl.app.base.BaseViewBindingActivity; import com.chwl.app.base.TitleBar; import com.chwl.app.databinding.ActivityMyRecommendCardBinding; @@ -49,7 +50,7 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity( * 公會 */ private fun initDetail() { - val viewPager: ViewPager = binding.viewPagerDetail + val viewPager = binding.viewPagerDetail val magicIndicator: MagicIndicator = binding.magicIndicator val fragmentList: MutableList = ArrayList() val pagerAdapter = CommonPagerAdapter(supportFragmentManager, fragmentList) @@ -59,21 +61,24 @@ class AssociationActivity : BaseViewBindingActivity( commonNavigator.adapter = magicIndicatorAdapter magicIndicator.navigator = commonNavigator commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE - viewPager.adapter = pagerAdapter - ViewPagerHelper.bind(magicIndicator, viewPager) - viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { + viewPager.adapter = CommonVPAdapter(supportFragmentManager, lifecycle, fragmentList) + viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageScrolled( position: Int, positionOffset: Float, positionOffsetPixels: Int ) { + magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels) } override fun onPageSelected(position: Int) { + magicIndicator.onPageSelected(position) viewPager.requestLayout() } - override fun onPageScrollStateChanged(state: Int) {} + override fun onPageScrollStateChanged(state: Int) { + magicIndicator.onPageScrollStateChanged(state) + } }) } diff --git a/app/src/main/java/com/chwl/app/home/fragment/ContactsListFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/ContactsListFragment.kt index 008bf68ef..8af265a22 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/ContactsListFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/ContactsListFragment.kt @@ -4,9 +4,11 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.fragment.app.Fragment import androidx.viewpager.widget.ViewPager.OnPageChangeListener +import androidx.viewpager2.widget.ViewPager2 import com.netease.nimlib.sdk.NIMClient import com.netease.nimlib.sdk.msg.MsgService import com.chwl.app.R +import com.chwl.app.avroom.adapter.CommonVPAdapter import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.common.widget.dialog.DialogManager.AbsOkDialogListener import com.chwl.app.databinding.FragmentContactListBinding @@ -38,8 +40,6 @@ class ContactsListFragment : BaseViewBindingFragment } } - private var pagerAdapter: UserInfoPagerAdapter? = null - override fun init() { initViewPager() } @@ -50,7 +50,6 @@ class ContactsListFragment : BaseViewBindingFragment fragmentList.add(FriendListFragment.newInstance(false, 0)) fragmentList.add(AttentionFragment.newInstance(Constants.FAN_NO_MAIN_PAGE_TYPE)) fragmentList.add(FansListFragment.newInstance(Constants.FAN_NO_MAIN_PAGE_TYPE)) - pagerAdapter = UserInfoPagerAdapter(childFragmentManager, fragmentList) val tagList: MutableList = ArrayList(4) tagList.add(getString(R.string.message)) tagList.add(getString(R.string.layout_fragment_contact_list_02)) @@ -66,21 +65,31 @@ class ContactsListFragment : BaseViewBindingFragment binding.magicIndicator.navigator = commonNavigator commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE binding.viewPager.offscreenPageLimit = 4 - binding.viewPager.adapter = pagerAdapter - ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager) - binding.viewPager.addOnPageChangeListener(object : OnPageChangeListener { + binding.viewPager.adapter = CommonVPAdapter(childFragmentManager, lifecycle, fragmentList) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageScrollStateChanged(state: Int) { + super.onPageScrollStateChanged(state) + binding.magicIndicator.onPageScrollStateChanged(state) + } + override fun onPageScrolled( position: Int, positionOffset: Float, positionOffsetPixels: Int ) { + super.onPageScrolled(position, positionOffset, positionOffsetPixels) + binding.magicIndicator.onPageScrolled( + position, + positionOffset, + positionOffsetPixels + ) } override fun onPageSelected(position: Int) { + super.onPageSelected(position) + binding.magicIndicator.onPageSelected(position) binding.viewPager.requestLayout() } - - override fun onPageScrollStateChanged(state: Int) {} }) } diff --git a/app/src/main/java/com/chwl/app/home/fragment/PartyFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/PartyFragment.kt index 7e9b81d51..7824c96bf 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/PartyFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/PartyFragment.kt @@ -9,6 +9,7 @@ import androidx.fragment.app.activityViewModels import com.coorchice.library.utils.LogUtils import com.netease.nim.uikit.common.util.sys.ScreenUtil import com.chwl.app.R +import com.chwl.app.avroom.adapter.CommonVPAdapter import com.chwl.app.avroom.adapter.RoomVPAdapter import com.chwl.app.base.BaseFragment import com.chwl.app.databinding.FragmentPartyBinding @@ -121,8 +122,8 @@ class PartyFragment : BaseFragment(), PartyMagicIndicatorAdapter.OnItemSelectLis commonNavigator.adapter = magicIndicatorAdapter mBinding.magicIndicator.navigator = commonNavigator mBinding.viewPager.offscreenPageLimit = 2 - mBinding.viewPager.adapter = RoomVPAdapter( - childFragmentManager, + mBinding.viewPager.adapter = CommonVPAdapter( + childFragmentManager, lifecycle, mFragments ) ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager) diff --git a/app/src/main/java/com/chwl/app/ui/search/SearchHallActivity.java b/app/src/main/java/com/chwl/app/ui/search/SearchHallActivity.java index f99b42464..b6e6560b8 100644 --- a/app/src/main/java/com/chwl/app/ui/search/SearchHallActivity.java +++ b/app/src/main/java/com/chwl/app/ui/search/SearchHallActivity.java @@ -16,7 +16,9 @@ import android.widget.TextView; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; +import androidx.viewpager2.widget.ViewPager2; +import com.chwl.app.avroom.adapter.CommonVPAdapter; import com.netease.nim.uikit.StatusBarUtil; import com.chwl.app.R; import com.chwl.app.base.BaseMvpActivity; @@ -57,7 +59,7 @@ public class SearchHallActivity extends BaseMvpActivity() { override fun init() { initWhiteTitleBar(ResUtil.getString(R.string.ui_user_usergiftactivity_01)) - val viewPager: ViewPager = binding.viewPager + val viewPager = binding.viewPager val magicIndicator: MagicIndicator = binding.magicIndicator val fragmentList: MutableList = ArrayList(2) //礼物类型 1:普通礼物;2:辛运礼物 fragmentList.add(UserInfoGiftFragment.newInstance(1, true)) fragmentList.add(UserInfoGiftFragment.newInstance(2, true)) - val pagerAdapter = UserInfoPagerAdapter(supportFragmentManager, fragmentList) val tagList: MutableList = ArrayList(2) tagList.add(getString(R.string.me_ordinary_gift)) tagList.add(getString(R.string.me_lucky_gift)) @@ -41,7 +41,7 @@ class UserGiftActivity : BaseViewBindingActivity() { magicIndicator.navigator = commonNavigator commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE viewPager.offscreenPageLimit = 2 - viewPager.adapter = pagerAdapter + viewPager.adapter = CommonVPAdapter(supportFragmentManager, lifecycle, fragmentList) ViewPagerHelper.bind(magicIndicator, viewPager) } diff --git a/app/src/main/java/com/chwl/app/ui/user/activity/UserInfoActivity.java b/app/src/main/java/com/chwl/app/ui/user/activity/UserInfoActivity.java index c55b5e8cf..ac6bcd693 100644 --- a/app/src/main/java/com/chwl/app/ui/user/activity/UserInfoActivity.java +++ b/app/src/main/java/com/chwl/app/ui/user/activity/UserInfoActivity.java @@ -18,7 +18,9 @@ import androidx.core.widget.NestedScrollView; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.viewpager.widget.ViewPager; +import androidx.viewpager2.widget.ViewPager2; +import com.chwl.app.avroom.adapter.CommonVPAdapter; import com.netease.nim.uikit.StatusBarUtil; import com.netease.nim.uikit.impl.cache.NimUserInfoCache; import com.netease.nimlib.sdk.RequestCallbackWrapper; @@ -225,7 +227,6 @@ public class UserInfoActivity extends BaseBindingActivity fragmentList = new ArrayList<>(2); fragmentList.add(new UserInfoInfoFragment()); fragmentList.add(new UserInfoGiftWallFragment()); - UserInfoPagerAdapter pagerAdapter = new UserInfoPagerAdapter(getSupportFragmentManager(), fragmentList); final List tagList = new ArrayList<>(2); tagList.add(getString(R.string.me_data)); tagList.add(getString(R.string.me_gift_wall)); @@ -239,20 +240,22 @@ public class UserInfoActivity extends BaseBindingActivity = ArrayList(2) //礼物类型 1:普通礼物;2:辛运礼物 fragmentList.add(UserInfoGiftFragment.newInstance(1, false)) fragmentList.add(UserInfoGiftFragment.newInstance(2, false)) - val pagerAdapter = UserInfoPagerAdapter(childFragmentManager, fragmentList) val tagList: MutableList = ArrayList(2) tagList.add(getString(R.string.me_ordinary_gift)) tagList.add(getString(R.string.me_lucky_gift)) @@ -51,7 +51,7 @@ class UserInfoGiftWallFragment : BaseViewBindingFragment - diff --git a/app/src/main/res/layout/activity_my_decoration.xml b/app/src/main/res/layout/activity_my_decoration.xml index bb73e1995..a3047b93d 100644 --- a/app/src/main/res/layout/activity_my_decoration.xml +++ b/app/src/main/res/layout/activity_my_decoration.xml @@ -45,7 +45,7 @@ android:layout_below="@+id/fl_roll_view" android:layout_marginTop="@dimen/dp_10" /> - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_room_rank_list.xml b/app/src/main/res/layout/activity_room_rank_list.xml index 736a6393e..d67fa1497 100644 --- a/app/src/main/res/layout/activity_room_rank_list.xml +++ b/app/src/main/res/layout/activity_room_rank_list.xml @@ -83,13 +83,13 @@ - - + diff --git a/app/src/main/res/layout/activity_search_hall.xml b/app/src/main/res/layout/activity_search_hall.xml index 9a11585e8..c8502d2b3 100644 --- a/app/src/main/res/layout/activity_search_hall.xml +++ b/app/src/main/res/layout/activity_search_hall.xml @@ -93,7 +93,7 @@ android:paddingEnd="5dp" android:visibility="gone" /> - diff --git a/app/src/main/res/layout/activity_user_gift.xml b/app/src/main/res/layout/activity_user_gift.xml index 0ada48428..4a469c3ae 100644 --- a/app/src/main/res/layout/activity_user_gift.xml +++ b/app/src/main/res/layout/activity_user_gift.xml @@ -21,7 +21,7 @@ android:paddingStart="13dp" android:paddingEnd="10dp" /> - diff --git a/app/src/main/res/layout/activity_user_info.xml b/app/src/main/res/layout/activity_user_info.xml index 5408835e7..9792ecd1e 100644 --- a/app/src/main/res/layout/activity_user_info.xml +++ b/app/src/main/res/layout/activity_user_info.xml @@ -410,7 +410,7 @@ android:background="@color/color_F7F7F7" /> - - - diff --git a/app/src/main/res/layout/fragment_room_charm_list.xml b/app/src/main/res/layout/fragment_room_charm_list.xml index 78450c85f..c7749f702 100644 --- a/app/src/main/res/layout/fragment_room_charm_list.xml +++ b/app/src/main/res/layout/fragment_room_charm_list.xml @@ -21,7 +21,7 @@ - diff --git a/app/src/main/res/layout/fragment_room_contribute.xml b/app/src/main/res/layout/fragment_room_contribute.xml index 028e0a5e6..9342198aa 100644 --- a/app/src/main/res/layout/fragment_room_contribute.xml +++ b/app/src/main/res/layout/fragment_room_contribute.xml @@ -18,7 +18,7 @@ - diff --git a/app/src/main/res/layout/fragment_room_rank_list.xml b/app/src/main/res/layout/fragment_room_rank_list.xml index ff7d1ea52..18a418073 100644 --- a/app/src/main/res/layout/fragment_room_rank_list.xml +++ b/app/src/main/res/layout/fragment_room_rank_list.xml @@ -74,13 +74,13 @@ - - + diff --git a/app/src/main/res/layout/fragment_userinfo_gift_wall.xml b/app/src/main/res/layout/fragment_userinfo_gift_wall.xml index f59ed577c..a1a8e5570 100644 --- a/app/src/main/res/layout/fragment_userinfo_gift_wall.xml +++ b/app/src/main/res/layout/fragment_userinfo_gift_wall.xml @@ -26,7 +26,7 @@ android:layout_gravity="center_horizontal" android:layout_marginTop="@dimen/dp_14" /> -