TabLayout+Viewpage滑动

1.主页面布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".activity.CouponUserActivity">

   
    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tab_coupon"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <androidx.viewpager.widget.ViewPager
        android: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;


    @Override
    protected int getContentLayout() {
        return R.layout.activity_coupon_user;
    }

    @Override
    protected 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关联起来。

    }

    @Override
    protected void initAction() {

    }

    @Override
    protected 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();
    }

    @Override
    public int getCount() {

        return (pages != null && pages.size() > 0) ? pages.size() : 0;
    }

    @Override
    public Fragment getItem(int position) {
        return pages.get(position);
    }


    @Override
    public CharSequence getPageTitle(int position) {
        return titles.get(position);//页卡标题
    }


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值