1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > TabLayout+Viewpage滑动

TabLayout+Viewpage滑动

时间:2024-04-17 10:08:51

相关推荐

TabLayout+Viewpage滑动

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);//页卡标题}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。