当前位置:首页 > 技术知识 > 正文内容

Android TabLayout + ViewPager2使用

maynowei3周前 (08-02)技术知识15

1、xml文件

<!--明细列表-->
<com.google.android.material.tabs.TabLayout
    android:id="@+id/ty_purse_bill_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
<!--展示列表 -->
<androidx.viewpager2.widget.ViewPager2
    android:id="@+id/vp_purse_bill_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

2、Java代码设置

    private String[] mTabLayoutTitle = {"全部明细","待核明细","收入明细","支出明细"};
 public void initView(View view) {
        //禁用预加载
        vpPurseBillList.setOffscreenPageLimit(ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT);
   			//注册监听
        vpPurseBillList.registerOnPageChangeCallback(onPageChangeCallback);
        vpPurseBillList.setAdapter(new FragmentStateAdapter(this) {
            @NonNull
            @Override
            public Fragment createFragment(int position) {
                return FragmentDetailedBillList.newInstance(position);
            }

            @Override
            public int getItemCount() {
                return mTabLayoutTitle.length;
            }
        });
        mTabLayoutMediator = new TabLayoutMediator(tyPurseBillList, vpPurseBillList, new TabLayoutMediator.TabConfigurationStrategy() {
            @Override
            public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
                //自定义Tab
                tab.setText(mTabLayoutTitle[position]);
            }
        });
        //绑定
        mTabLayoutMediator.attach();
    }
 public void onDestroy() {
        //释放
        mTabLayoutMediator.detach();
        vpPurseBillList.unregisterOnPageChangeCallback(onPageChangeCallback);
        super.onDestroy();
    }

相关文章

如何快速将axure生成的原型放到手机上演示

人人都是产品经理旗下【起点学院】推出产品经理“365天”成长计划,BAT大牛带你学产品! 之前Axure官方有一个原型在线分享演示的平台,用户可以直接生成原型到Axure官方平台,方便用户提供演示:h...

B端产品设计之业务设计(b端产品ui设计)

编辑导语:在这篇文章里,作者从解决方案设计、业务流程设计、产品功能设计三个方面,分析了如何进行B端产品的业务设计,感兴趣的小伙伴们一起来看一下吧。前篇文章讲了业务梳理,还没看过的同学可以先看看前篇文章...

Objective-C的本质(objective-c的特点)

我们平时编写的Objective-C代码,底层实现其实都是C\C++代码,所以Objective-C的面向对象都是基于C\C++的数据结构实现的OC对象的本质Objective-C的对象、类主要是基于...

ExpandListView 的一种巧妙写法(三十的另一种写法)

ExpandListView大家估计也用的不少了,一般有需要展开的需求的时候,大家不约而同的都想到了它然后以前自己留过记录的一般都会找找以前自己的代码,没有记录习惯的就会百度、谷歌,这里吐槽一下,好几...

有了这份900多页的Android面试指南,你离大厂Offer还远吗?

前言对于大部分程序员来说,一线互联网是的工作经历是毕生的追求,实际上大厂对于学历的要求远远没有我们想象的那么高,近几年来,互联网公司更注重技术,所以提升自身技术水平才是斩获offer的制胜关键。一线互...

android培训学习的大纲(安卓app培训)

第一阶段android基础:1.基础javaJava概述,进制,数据类型,常量变量,运算符,表达式关系运算符,逻辑运算符,if语句,switch语句while循环,do...while循环,for循环...