1.主页面布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".activity.CouponUserActivity"><com.google.android.material.tabs.TabLayoutandroid:id="@+id/tab_coupon"android:layout_width="match_parent"android:layout_height="wrap_content" /><androidx.viewpager.widget.ViewPagerandroid:id="@+id/vp_coupon"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>
2.主Activity逻辑
public class CouponUserActivity extends BaseAppCompatActivity {@BindView(R.id.webview_title_text)TextView webviewTitleText;@BindView(R.id.tab_coupon)TabLayout tabCoupon;@BindView(R.id.vp_coupon)ViewPager vpCoupon;private List<Fragment> pages;//页面集合private List<String> tabTitles;//页卡标题集合private FragTitlePagerAdap pagerAdap;@Overrideprotected int getContentLayout() {return R.layout.activity_coupon_user;}@Overrideprotected void initGui() {tabCoupon.setSelectedTabIndicatorColor(Constant.getMaincolor());webviewTitleText.setText("优惠券");tabTitles = new ArrayList<>();tabTitles.add("全部");tabTitles.add("未使用");tabTitles.add("已使用");pages = new ArrayList<>();pages.add(new CouponFragment());pages.add(new Coupon2Fragment());pages.add(new Coupon3Fragment());tabCoupon.setTabMode(TabLayout.MODE_FIXED);tabCoupon.addTab(tabCoupon.newTab().setText(tabTitles.get(0)));tabCoupon.addTab(tabCoupon.newTab().setText(tabTitles.get(1)));tabCoupon.addTab(tabCoupon.newTab().setText(tabTitles.get(2)));FragmentManager manager = getSupportFragmentManager();pagerAdap = new FragTitlePagerAdap(manager, pages, tabTitles);tabCoupon.setTabsFromPagerAdapter(pagerAdap);//给Tabs设置适配器vpCoupon.setAdapter(pagerAdap);//给ViewPager设置适配器tabCoupon.setupWithViewPager(vpCoupon);//将TabLayout和ViewPager关联起来。}@Overrideprotected void initAction() {}@Overrideprotected void initData() {}}
3.FragTitlePagerAdap
public class FragTitlePagerAdap extends FragmentPagerAdapter {private List<Fragment> pages;private List<String> titles;public FragTitlePagerAdap(FragmentManager fm, List<Fragment> pages) {super(fm);this.pages = pages;}public FragTitlePagerAdap(FragmentManager fm, List<Fragment> pages, List<String> titles) {super(fm);this.pages = pages;this.titles = titles;}public void setPages(List<Fragment> pages) {this.pages = pages;notifyDataSetChanged();}@Overridepublic int getCount() {return (pages != null && pages.size() > 0) ? pages.size() : 0;}@Overridepublic Fragment getItem(int position) {return pages.get(position);}@Overridepublic CharSequence getPageTitle(int position) {return titles.get(position);//页卡标题}}