RTL适配:Viewpager换为Viewpager2

This commit is contained in:
max
2024-04-12 11:00:10 +08:00
parent ecdeee3e76
commit c4cc6153df
26 changed files with 105 additions and 85 deletions

View File

@@ -7,8 +7,10 @@ import android.view.View;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.chwl.app.R; 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.RoomCharmListFragment;
import com.chwl.app.avroom.fragment.RoomContributeListFragment; import com.chwl.app.avroom.fragment.RoomContributeListFragment;
import com.chwl.app.base.BaseBindingActivity; import com.chwl.app.base.BaseBindingActivity;
@@ -39,18 +41,8 @@ public class RoomRankListActivity extends BaseBindingActivity<ActivityRoomRankLi
List<Fragment> list = new ArrayList<>(); List<Fragment> list = new ArrayList<>();
list.add(RoomCharmListFragment.newInstance()); list.add(RoomCharmListFragment.newInstance());
list.add(new RoomContributeListFragment()); list.add(new RoomContributeListFragment());
mBinding.viewPager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) { mBinding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager(),getLifecycle(),list));
@Override mBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
});
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override @Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

View File

@@ -3,6 +3,7 @@ package com.chwl.app.avroom.fragment;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.chwl.app.R; import com.chwl.app.R;
import com.chwl.app.avroom.adapter.CommonVPAdapter;
import com.chwl.app.avroom.adapter.RoomContributeListAdapter; import com.chwl.app.avroom.adapter.RoomContributeListAdapter;
import com.chwl.app.avroom.widget.RankNavigatorAdapter; import com.chwl.app.avroom.widget.RankNavigatorAdapter;
import com.chwl.app.base.BaseBindingFragment; import com.chwl.app.base.BaseBindingFragment;
@@ -26,7 +27,7 @@ public class RoomCharmListFragment extends BaseBindingFragment<FragmentRoomCharm
ArrayList<Fragment> fragments = new ArrayList<>(2); ArrayList<Fragment> fragments = new ArrayList<>(2);
fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING)); fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING));
fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_WEEK_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 commonNavigator = new CommonNavigator(getActivity());
commonNavigator.setAdjustMode(false); commonNavigator.setAdjustMode(false);

View File

@@ -2,8 +2,10 @@ package com.chwl.app.avroom.fragment;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.chwl.app.R; import com.chwl.app.R;
import com.chwl.app.avroom.adapter.CommonVPAdapter;
import com.chwl.app.avroom.adapter.RoomContributeListAdapter; import com.chwl.app.avroom.adapter.RoomContributeListAdapter;
import com.chwl.app.avroom.widget.RankNavigatorAdapter; import com.chwl.app.avroom.widget.RankNavigatorAdapter;
import com.chwl.app.base.BaseMvpFragment; import com.chwl.app.base.BaseMvpFragment;
@@ -21,7 +23,7 @@ import java.util.ArrayList;
*/ */
public class RoomContributeListFragment extends BaseMvpFragment implements IMvpBaseView { public class RoomContributeListFragment extends BaseMvpFragment implements IMvpBaseView {
private ViewPager viewPager; private ViewPager2 viewPager;
private MagicIndicator viewIndicator; private MagicIndicator viewIndicator;
@Override @Override
@@ -43,7 +45,7 @@ public class RoomContributeListFragment extends BaseMvpFragment implements IMvpB
if (AvRoomDataManager.get().isDatingMode()) { if (AvRoomDataManager.get().isDatingMode()) {
fragments.add(RoomContributeFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_MONTH_RANKING)); 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 commonNavigator = new CommonNavigator(getActivity());
commonNavigator.setAdjustMode(false); commonNavigator.setAdjustMode(false);
RankNavigatorAdapter indicator = new RankNavigatorAdapter(AvRoomDataManager.get().isDatingMode()); RankNavigatorAdapter indicator = new RankNavigatorAdapter(AvRoomDataManager.get().isDatingMode());

View File

@@ -5,6 +5,7 @@ import android.view.View;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.chwl.app.R; import com.chwl.app.R;
import com.chwl.app.avroom.adapter.CommonVPAdapter;
import com.chwl.app.avroom.adapter.RoomContributeListAdapter; import com.chwl.app.avroom.adapter.RoomContributeListAdapter;
import com.chwl.app.avroom.widget.RoomRankNavigatorAdapter; import com.chwl.app.avroom.widget.RoomRankNavigatorAdapter;
import com.chwl.app.base.BaseBindingFragment; import com.chwl.app.base.BaseBindingFragment;
@@ -29,7 +30,7 @@ public class RoomRankListFragment extends BaseBindingFragment<FragmentRoomRankLi
List<Fragment> list = new ArrayList<>(2); List<Fragment> list = new ArrayList<>(2);
list.add(new RoomContributeListFragment()); list.add(new RoomContributeListFragment());
list.add(RoomCharmListFragment.newInstance()); 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 commonNavigator = new CommonNavigator(getActivity());
commonNavigator.setAdjustMode(true); commonNavigator.setAdjustMode(true);

View File

@@ -9,6 +9,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter;
import com.chwl.app.R; import com.chwl.app.R;
import com.chwl.app.avroom.adapter.CommonVPAdapter;
import com.chwl.app.base.BaseViewBindingActivity; import com.chwl.app.base.BaseViewBindingActivity;
import com.chwl.app.base.TitleBar; import com.chwl.app.base.TitleBar;
import com.chwl.app.databinding.ActivityMyRecommendCardBinding; import com.chwl.app.databinding.ActivityMyRecommendCardBinding;
@@ -49,7 +50,7 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.HAS_USED)); fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.HAS_USED));
//已失效 //已失效
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.INVALID)); fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.INVALID));
binding.viewPager.setAdapter(new CardPagerAdapter(getSupportFragmentManager())); binding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager() ,getLifecycle(), fragmentList));
} }
@Override @Override
@@ -82,21 +83,4 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
ViewPagerHelper.bind(binding.indicator, binding.viewPager); ViewPagerHelper.bind(binding.indicator, binding.viewPager);
} }
class CardPagerAdapter extends FragmentStatePagerAdapter {
public CardPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
} }

View File

@@ -12,6 +12,8 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentPagerAdapter; import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.netease.nim.uikit.StatusBarUtil; import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.common.util.log.LogUtil; import com.netease.nim.uikit.common.util.log.LogUtil;
@@ -62,7 +64,7 @@ public class MyDecorationActivity extends BaseBindingActivity<ActivityMyDecorati
* 我的装饰Banner * 我的装饰Banner
*/ */
private static final String BANNER_TYPE = "3"; private static final String BANNER_TYPE = "3";
private ViewPager viewPager; private ViewPager2 viewPager;
private int mPosition; private int mPosition;
private boolean carGarageNeedUpdate = true; private boolean carGarageNeedUpdate = true;
private MyHeadWearFragment myHeadWearFragment; private MyHeadWearFragment myHeadWearFragment;
@@ -103,22 +105,21 @@ public class MyDecorationActivity extends BaseBindingActivity<ActivityMyDecorati
indicator.setOnItemSelectListener(this); indicator.setOnItemSelectListener(this);
commonNavigator.setAdapter(indicator); commonNavigator.setAdapter(indicator);
mMagicIndicator.setNavigator(commonNavigator); mMagicIndicator.setNavigator(commonNavigator);
ViewPagerHelper.bind(mMagicIndicator, viewPager);
myHeadWearFragment = new MyHeadWearFragment(); myHeadWearFragment = new MyHeadWearFragment();
mMyCarFragment = MyCarFragment.instance(this); mMyCarFragment = MyCarFragment.instance(this);
mMyNamePlateFragment = new MyNamePlateFragment(); mMyNamePlateFragment = new MyNamePlateFragment();
mMyUserCardWearFragment = new MyUserCardWearFragment(); mMyUserCardWearFragment = new MyUserCardWearFragment();
mMyChatBubbleFragment = new MyChatBubbleFragment(); mMyChatBubbleFragment = new MyChatBubbleFragment();
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { viewPager.setAdapter(new FragmentStateAdapter(getSupportFragmentManager(), getLifecycle()) {
@Override @Override
public int getCount() { public int getItemCount() {
return tabInfoList.size(); return tabInfoList.size();
} }
@NonNull @NonNull
@Override @Override
public Fragment getItem(int position) { public Fragment createFragment(int position) {
if (position == 0) { if (position == 0) {
return myHeadWearFragment; return myHeadWearFragment;
} else if (position == 1) { } else if (position == 1) {
@@ -132,12 +133,31 @@ public class MyDecorationActivity extends BaseBindingActivity<ActivityMyDecorati
return mMyChatBubbleFragment; return mMyChatBubbleFragment;
} }
}); });
viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override @Override
public void onPageSelected(int position) { public void onPageSelected(int position) {
super.onPageSelected(position); super.onPageSelected(position);
if (position == 1) { if (mMagicIndicator != null) {
mMagicIndicator.findViewById(R.id.car_badge_garage).setVisibility(View.GONE); mMagicIndicator.onPageSelected(position);
if (position == 1) {
mMagicIndicator.findViewById(R.id.car_badge_garage).setVisibility(View.GONE);
}
}
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
if (mMagicIndicator != null) {
mMagicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
}
@Override
public void onPageScrollStateChanged(int state) {
super.onPageScrollStateChanged(state);
if (mMagicIndicator != null) {
mMagicIndicator.onPageScrollStateChanged(state);
} }
} }
}); });

View File

@@ -6,8 +6,10 @@ import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import androidx.viewpager2.widget.ViewPager2
import com.netease.nim.uikit.StatusBarUtil import com.netease.nim.uikit.StatusBarUtil
import com.chwl.app.R import com.chwl.app.R
import com.chwl.app.avroom.adapter.CommonVPAdapter
import com.chwl.app.module_hall.hall.fragment.AssociationFragment import com.chwl.app.module_hall.hall.fragment.AssociationFragment
import com.chwl.app.module_hall.hall.fragment.AssociationRoomFragment import com.chwl.app.module_hall.hall.fragment.AssociationRoomFragment
import com.chwl.app.base.BaseViewBindingActivity import com.chwl.app.base.BaseViewBindingActivity
@@ -41,7 +43,7 @@ class AssociationActivity : BaseViewBindingActivity<ActivityAssociationBinding>(
* 公會 * 公會
*/ */
private fun initDetail() { private fun initDetail() {
val viewPager: ViewPager = binding.viewPagerDetail val viewPager = binding.viewPagerDetail
val magicIndicator: MagicIndicator = binding.magicIndicator val magicIndicator: MagicIndicator = binding.magicIndicator
val fragmentList: MutableList<Fragment> = ArrayList() val fragmentList: MutableList<Fragment> = ArrayList()
val pagerAdapter = CommonPagerAdapter(supportFragmentManager, fragmentList) val pagerAdapter = CommonPagerAdapter(supportFragmentManager, fragmentList)
@@ -59,21 +61,24 @@ class AssociationActivity : BaseViewBindingActivity<ActivityAssociationBinding>(
commonNavigator.adapter = magicIndicatorAdapter commonNavigator.adapter = magicIndicatorAdapter
magicIndicator.navigator = commonNavigator magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
viewPager.adapter = pagerAdapter viewPager.adapter = CommonVPAdapter(supportFragmentManager, lifecycle, fragmentList)
ViewPagerHelper.bind(magicIndicator, viewPager) viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled( override fun onPageScrolled(
position: Int, position: Int,
positionOffset: Float, positionOffset: Float,
positionOffsetPixels: Int positionOffsetPixels: Int
) { ) {
magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels)
} }
override fun onPageSelected(position: Int) { override fun onPageSelected(position: Int) {
magicIndicator.onPageSelected(position)
viewPager.requestLayout() viewPager.requestLayout()
} }
override fun onPageScrollStateChanged(state: Int) {} override fun onPageScrollStateChanged(state: Int) {
magicIndicator.onPageScrollStateChanged(state)
}
}) })
} }

View File

@@ -4,9 +4,11 @@ import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager.widget.ViewPager.OnPageChangeListener import androidx.viewpager.widget.ViewPager.OnPageChangeListener
import androidx.viewpager2.widget.ViewPager2
import com.netease.nimlib.sdk.NIMClient import com.netease.nimlib.sdk.NIMClient
import com.netease.nimlib.sdk.msg.MsgService import com.netease.nimlib.sdk.msg.MsgService
import com.chwl.app.R import com.chwl.app.R
import com.chwl.app.avroom.adapter.CommonVPAdapter
import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.base.BaseViewBindingFragment
import com.chwl.app.common.widget.dialog.DialogManager.AbsOkDialogListener import com.chwl.app.common.widget.dialog.DialogManager.AbsOkDialogListener
import com.chwl.app.databinding.FragmentContactListBinding import com.chwl.app.databinding.FragmentContactListBinding
@@ -38,8 +40,6 @@ class ContactsListFragment : BaseViewBindingFragment<FragmentContactListBinding>
} }
} }
private var pagerAdapter: UserInfoPagerAdapter? = null
override fun init() { override fun init() {
initViewPager() initViewPager()
} }
@@ -50,7 +50,6 @@ class ContactsListFragment : BaseViewBindingFragment<FragmentContactListBinding>
fragmentList.add(FriendListFragment.newInstance(false, 0)) fragmentList.add(FriendListFragment.newInstance(false, 0))
fragmentList.add(AttentionFragment.newInstance(Constants.FAN_NO_MAIN_PAGE_TYPE)) fragmentList.add(AttentionFragment.newInstance(Constants.FAN_NO_MAIN_PAGE_TYPE))
fragmentList.add(FansListFragment.newInstance(Constants.FAN_NO_MAIN_PAGE_TYPE)) fragmentList.add(FansListFragment.newInstance(Constants.FAN_NO_MAIN_PAGE_TYPE))
pagerAdapter = UserInfoPagerAdapter(childFragmentManager, fragmentList)
val tagList: MutableList<String> = ArrayList(4) val tagList: MutableList<String> = ArrayList(4)
tagList.add(getString(R.string.message)) tagList.add(getString(R.string.message))
tagList.add(getString(R.string.layout_fragment_contact_list_02)) tagList.add(getString(R.string.layout_fragment_contact_list_02))
@@ -66,21 +65,31 @@ class ContactsListFragment : BaseViewBindingFragment<FragmentContactListBinding>
binding.magicIndicator.navigator = commonNavigator binding.magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
binding.viewPager.offscreenPageLimit = 4 binding.viewPager.offscreenPageLimit = 4
binding.viewPager.adapter = pagerAdapter binding.viewPager.adapter = CommonVPAdapter(childFragmentManager, lifecycle, fragmentList)
ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager) binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
binding.viewPager.addOnPageChangeListener(object : OnPageChangeListener { override fun onPageScrollStateChanged(state: Int) {
super.onPageScrollStateChanged(state)
binding.magicIndicator.onPageScrollStateChanged(state)
}
override fun onPageScrolled( override fun onPageScrolled(
position: Int, position: Int,
positionOffset: Float, positionOffset: Float,
positionOffsetPixels: Int positionOffsetPixels: Int
) { ) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels)
binding.magicIndicator.onPageScrolled(
position,
positionOffset,
positionOffsetPixels
)
} }
override fun onPageSelected(position: Int) { override fun onPageSelected(position: Int) {
super.onPageSelected(position)
binding.magicIndicator.onPageSelected(position)
binding.viewPager.requestLayout() binding.viewPager.requestLayout()
} }
override fun onPageScrollStateChanged(state: Int) {}
}) })
} }

View File

@@ -9,6 +9,7 @@ import androidx.fragment.app.activityViewModels
import com.coorchice.library.utils.LogUtils import com.coorchice.library.utils.LogUtils
import com.netease.nim.uikit.common.util.sys.ScreenUtil import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.chwl.app.R import com.chwl.app.R
import com.chwl.app.avroom.adapter.CommonVPAdapter
import com.chwl.app.avroom.adapter.RoomVPAdapter import com.chwl.app.avroom.adapter.RoomVPAdapter
import com.chwl.app.base.BaseFragment import com.chwl.app.base.BaseFragment
import com.chwl.app.databinding.FragmentPartyBinding import com.chwl.app.databinding.FragmentPartyBinding
@@ -121,8 +122,8 @@ class PartyFragment : BaseFragment(), PartyMagicIndicatorAdapter.OnItemSelectLis
commonNavigator.adapter = magicIndicatorAdapter commonNavigator.adapter = magicIndicatorAdapter
mBinding.magicIndicator.navigator = commonNavigator mBinding.magicIndicator.navigator = commonNavigator
mBinding.viewPager.offscreenPageLimit = 2 mBinding.viewPager.offscreenPageLimit = 2
mBinding.viewPager.adapter = RoomVPAdapter( mBinding.viewPager.adapter = CommonVPAdapter(
childFragmentManager, childFragmentManager, lifecycle,
mFragments mFragments
) )
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager) ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager)

View File

@@ -16,7 +16,9 @@ import android.widget.TextView;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager; 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.StatusBarUtil;
import com.chwl.app.R; import com.chwl.app.R;
import com.chwl.app.base.BaseMvpActivity; import com.chwl.app.base.BaseMvpActivity;
@@ -57,7 +59,7 @@ public class SearchHallActivity extends BaseMvpActivity<ISearchView, SearchPrese
private TextView tvSearch; private TextView tvSearch;
private ImageView ivClearText; private ImageView ivClearText;
private MagicIndicator indicator; private MagicIndicator indicator;
private ViewPager viewPager; private ViewPager2 viewPager;
private LinearLayout llSearchDetail; private LinearLayout llSearchDetail;
protected int type = AbstractSelectFriendAction.TYPE_NORMAL; protected int type = AbstractSelectFriendAction.TYPE_NORMAL;
private long hallId; private long hallId;
@@ -134,7 +136,7 @@ public class SearchHallActivity extends BaseMvpActivity<ISearchView, SearchPrese
LinearLayout titleContainer = commonNavigator.getTitleContainer(); LinearLayout titleContainer = commonNavigator.getTitleContainer();
titleContainer.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); titleContainer.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), mTabs,null)); viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager(), getLifecycle(), mTabs));
ViewPagerHelper.bind(indicator, viewPager); ViewPagerHelper.bind(indicator, viewPager);
} }

View File

@@ -6,6 +6,7 @@ import androidx.fragment.app.Fragment
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.netease.nim.uikit.StatusBarUtil import com.netease.nim.uikit.StatusBarUtil
import com.chwl.app.R import com.chwl.app.R
import com.chwl.app.avroom.adapter.CommonVPAdapter
import com.chwl.app.base.BaseViewBindingActivity import com.chwl.app.base.BaseViewBindingActivity
import com.chwl.app.databinding.ActivityUserGiftBinding import com.chwl.app.databinding.ActivityUserGiftBinding
import com.chwl.app.ui.user.fragment.UserInfoGiftFragment import com.chwl.app.ui.user.fragment.UserInfoGiftFragment
@@ -21,13 +22,12 @@ class UserGiftActivity : BaseViewBindingActivity<ActivityUserGiftBinding>() {
override fun init() { override fun init() {
initWhiteTitleBar(ResUtil.getString(R.string.ui_user_usergiftactivity_01)) initWhiteTitleBar(ResUtil.getString(R.string.ui_user_usergiftactivity_01))
val viewPager: ViewPager = binding.viewPager val viewPager = binding.viewPager
val magicIndicator: MagicIndicator = binding.magicIndicator val magicIndicator: MagicIndicator = binding.magicIndicator
val fragmentList: MutableList<Fragment> = ArrayList(2) val fragmentList: MutableList<Fragment> = ArrayList(2)
//礼物类型 1:普通礼物;2:辛运礼物 //礼物类型 1:普通礼物;2:辛运礼物
fragmentList.add(UserInfoGiftFragment.newInstance(1, true)) fragmentList.add(UserInfoGiftFragment.newInstance(1, true))
fragmentList.add(UserInfoGiftFragment.newInstance(2, true)) fragmentList.add(UserInfoGiftFragment.newInstance(2, true))
val pagerAdapter = UserInfoPagerAdapter(supportFragmentManager, fragmentList)
val tagList: MutableList<String> = ArrayList(2) val tagList: MutableList<String> = ArrayList(2)
tagList.add(getString(R.string.me_ordinary_gift)) tagList.add(getString(R.string.me_ordinary_gift))
tagList.add(getString(R.string.me_lucky_gift)) tagList.add(getString(R.string.me_lucky_gift))
@@ -41,7 +41,7 @@ class UserGiftActivity : BaseViewBindingActivity<ActivityUserGiftBinding>() {
magicIndicator.navigator = commonNavigator magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
viewPager.offscreenPageLimit = 2 viewPager.offscreenPageLimit = 2
viewPager.adapter = pagerAdapter viewPager.adapter = CommonVPAdapter(supportFragmentManager, lifecycle, fragmentList)
ViewPagerHelper.bind(magicIndicator, viewPager) ViewPagerHelper.bind(magicIndicator, viewPager)
} }

View File

@@ -18,7 +18,9 @@ import androidx.core.widget.NestedScrollView;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.viewpager.widget.ViewPager; 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.StatusBarUtil;
import com.netease.nim.uikit.impl.cache.NimUserInfoCache; import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
import com.netease.nimlib.sdk.RequestCallbackWrapper; import com.netease.nimlib.sdk.RequestCallbackWrapper;
@@ -225,7 +227,6 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
List<Fragment> fragmentList = new ArrayList<>(2); List<Fragment> fragmentList = new ArrayList<>(2);
fragmentList.add(new UserInfoInfoFragment()); fragmentList.add(new UserInfoInfoFragment());
fragmentList.add(new UserInfoGiftWallFragment()); fragmentList.add(new UserInfoGiftWallFragment());
UserInfoPagerAdapter pagerAdapter = new UserInfoPagerAdapter(getSupportFragmentManager(), fragmentList);
final List<String> tagList = new ArrayList<>(2); final List<String> tagList = new ArrayList<>(2);
tagList.add(getString(R.string.me_data)); tagList.add(getString(R.string.me_data));
tagList.add(getString(R.string.me_gift_wall)); tagList.add(getString(R.string.me_gift_wall));
@@ -239,20 +240,22 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
mBinding.magicIndicator.setNavigator(commonNavigator); mBinding.magicIndicator.setNavigator(commonNavigator);
commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
mBinding.viewPager.setOffscreenPageLimit(2); mBinding.viewPager.setOffscreenPageLimit(2);
mBinding.viewPager.setAdapter(pagerAdapter); mBinding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager(),getLifecycle(),fragmentList));
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager); mBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override @Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
mBinding.magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels);
} }
@Override @Override
public void onPageSelected(int position) { public void onPageSelected(int position) {
mBinding.magicIndicator.onPageSelected(position);
mBinding.viewPager.requestLayout(); mBinding.viewPager.requestLayout();
} }
@Override @Override
public void onPageScrollStateChanged(int state) { public void onPageScrollStateChanged(int state) {
mBinding.magicIndicator.onPageScrollStateChanged(state);
} }
}); });
} }

View File

@@ -6,6 +6,7 @@ import android.widget.TextView
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.chwl.app.R import com.chwl.app.R
import com.chwl.app.avroom.adapter.CommonVPAdapter
import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.base.BaseViewBindingFragment
import com.chwl.app.databinding.FragmentUserinfoGiftWallBinding import com.chwl.app.databinding.FragmentUserinfoGiftWallBinding
import com.chwl.app.ui.user.activity.UserGiftActivity import com.chwl.app.ui.user.activity.UserGiftActivity
@@ -31,13 +32,12 @@ class UserInfoGiftWallFragment : BaseViewBindingFragment<FragmentUserinfoGiftWal
* @param list * @param list
*/ */
private fun initGiftList() { private fun initGiftList() {
val viewPager: ViewPager = binding.viewPagerGift val viewPager = binding.viewPagerGift
val magicIndicator: MagicIndicator = binding.magicIndicatorGift val magicIndicator: MagicIndicator = binding.magicIndicatorGift
val fragmentList: MutableList<Fragment> = ArrayList(2) val fragmentList: MutableList<Fragment> = ArrayList(2)
//礼物类型 1:普通礼物;2:辛运礼物 //礼物类型 1:普通礼物;2:辛运礼物
fragmentList.add(UserInfoGiftFragment.newInstance(1, false)) fragmentList.add(UserInfoGiftFragment.newInstance(1, false))
fragmentList.add(UserInfoGiftFragment.newInstance(2, false)) fragmentList.add(UserInfoGiftFragment.newInstance(2, false))
val pagerAdapter = UserInfoPagerAdapter(childFragmentManager, fragmentList)
val tagList: MutableList<String> = ArrayList(2) val tagList: MutableList<String> = ArrayList(2)
tagList.add(getString(R.string.me_ordinary_gift)) tagList.add(getString(R.string.me_ordinary_gift))
tagList.add(getString(R.string.me_lucky_gift)) tagList.add(getString(R.string.me_lucky_gift))
@@ -51,7 +51,7 @@ class UserInfoGiftWallFragment : BaseViewBindingFragment<FragmentUserinfoGiftWal
magicIndicator.navigator = commonNavigator magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
viewPager.offscreenPageLimit = 2 viewPager.offscreenPageLimit = 2
viewPager.adapter = pagerAdapter viewPager.adapter = CommonVPAdapter(childFragmentManager, lifecycle, fragmentList)
ViewPagerHelper.bind(magicIndicator, viewPager) ViewPagerHelper.bind(magicIndicator, viewPager)
} }

View File

@@ -20,7 +20,7 @@
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_10" /> android:layout_marginTop="@dimen/dp_10" />
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPagerDetail" android:id="@+id/viewPagerDetail"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>

View File

@@ -45,7 +45,7 @@
android:layout_below="@+id/fl_roll_view" android:layout_below="@+id/fl_roll_view"
android:layout_marginTop="@dimen/dp_10" /> android:layout_marginTop="@dimen/dp_10" />
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewpager" android:id="@+id/viewpager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"

View File

@@ -17,10 +17,10 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_marginBottom="@dimen/dp_15" android:layout_marginBottom="@dimen/dp_15"
android:layout_height="@dimen/dp_35" /> android:layout_height="@dimen/dp_35" />
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
</androidx.viewpager.widget.ViewPager> </androidx.viewpager2.widget.ViewPager2>
</LinearLayout> </LinearLayout>

View File

@@ -83,13 +83,13 @@
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@id/rl_top" android:layout_below="@id/rl_top"
android:overScrollMode="never"> android:overScrollMode="never">
</androidx.viewpager.widget.ViewPager> </androidx.viewpager2.widget.ViewPager2>
</RelativeLayout> </RelativeLayout>
</layout> </layout>

View File

@@ -93,7 +93,7 @@
android:paddingEnd="5dp" android:paddingEnd="5dp"
android:visibility="gone" /> android:visibility="gone" />
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewpager" android:id="@+id/viewpager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />

View File

@@ -21,7 +21,7 @@
android:paddingStart="13dp" android:paddingStart="13dp"
android:paddingEnd="10dp" /> android:paddingEnd="10dp" />
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />

View File

@@ -410,7 +410,7 @@
android:background="@color/color_F7F7F7" /> android:background="@color/color_F7F7F7" />
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"

View File

@@ -31,7 +31,7 @@
</LinearLayout> </LinearLayout>
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"

View File

@@ -17,7 +17,7 @@
android:layout_height="24dp" android:layout_height="24dp"
android:layout_marginStart="7dp" /> android:layout_marginStart="7dp" />
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />

View File

@@ -21,7 +21,7 @@
</FrameLayout> </FrameLayout>
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/vp_charm_rankings" android:id="@+id/vp_charm_rankings"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>

View File

@@ -18,7 +18,7 @@
</FrameLayout> </FrameLayout>
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/vp_contribute_rankings" android:id="@+id/vp_contribute_rankings"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>

View File

@@ -74,13 +74,13 @@
</LinearLayout> </LinearLayout>
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@id/ll_top_group" android:layout_below="@id/ll_top_group"
android:overScrollMode="never"> android:overScrollMode="never">
</androidx.viewpager.widget.ViewPager> </androidx.viewpager2.widget.ViewPager2>
</RelativeLayout> </RelativeLayout>
</layout> </layout>

View File

@@ -26,7 +26,7 @@
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_14" /> android:layout_marginTop="@dimen/dp_14" />
<androidx.viewpager.widget.ViewPager <androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager_gift" android:id="@+id/view_pager_gift"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="320dp" /> android:layout_height="320dp" />