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

Android TabLayout + ViewPager2使用

maynowei9个月前 (08-02)技术知识146

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

相关文章

微软明年要停止SQL Server 2005的技术支持了

站长之家(Chinaz.com)12月28日消息据外媒消息称,微软将于明年停止为SQL Server 2005提供技术支持,即不再为其提供新的安全补丁、新功能、应用升级等服务。且表示在停止技术支持后,...

Android指示器,轮播与循环轮播(android轮播图代码)

Android UI Libs之CircleIndicator1. 说明CircleIndicator,顾名思义,圆形指示器,只一个可以用来做轮播的第三方库。2. 配置在模块的build.gradle...

从 async/await 到虚拟线程:Python 并发的再思考

演进之路:从async/await到线程的反思首先必须明确的是,async/await对Python并非全无裨益:它最大的价值,是让更多人接触到了并发编程。通过在编程语言中嵌入语法元素,并发编程的门槛...

Oracle高级数据库特性揭秘:存储过程、触发器与权限管理

当谈论Oracle高级数据库特性时,存储过程和函数、触发器、权限管理和安全性以及数据库连接和远程访问是关键概念。下面我将为每个主题提供详细的解释,并附上高质量示例。存储过程和函数: 存储过程和函数是预...

Docker安装Oracle 11g 数据库过程详解

1、查看docker 版本[root@node3 ~]# docker version Client: Version: 18.09.6 API version:...

面试官:说说Oracle数据库result cache的原理是什么?

概述前面已经用实验给大家介绍了Result Cache相关内容,今天主要讨论一下Oracle 11g Result Cache的深层原理。从参数看,Oracle提供了Client Result Cac...