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

Android TabLayout + ViewPager2使用

maynowei7个月前 (08-02)技术知识117

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

相关文章

Axure8.0教程:“百度一下,你就知道”搜索首页原型设计

加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品百度作为最大的中文搜索引擎,在某种程度上,有点学习google的简约至上的原则,但是给人的感觉还是不够彻底。今天,使用...

msf系列篇章之七模块详解,黑客必学

1、 mestasploit有很多模块,一共分为七类那如果是kali中自带的msf,它默认的安装路径是在这里。,然后可以看见它这些模块有些相对应的目录。1)、exploits漏洞利用模块,这个模块通常...

微软宣布SQL Server 2016,2005版将结束支持

IT之家讯 在芝加哥Ignite大会上,微软宣布了SQL Server 2016,并将于今年夏季发布公开预览版。SQL Server是由微软开发的关系型数据库管理系统,用于软件应用请求数据的存储和管理...

Flutter 之 ListView(flutter框架)

在 Flutter 中,ListView 可以沿一个方向(垂直或水平方向)来排列其所有子 Widget,常被用于需要展示一组连续视图元素的场景ListView 构造方法ListView:仅适用于列表中...

Go 语言中的 RWMutex 源码解析、使用场景及应用分析

Go 语言标准库的 sync 包提供了一些非常重要的并发原语来帮助程序开发者处理并发任务。本文将详细解析 sync 包中的 RWMutex,即读写互斥锁(Reader/Writer Mutex),并结...

C++11 同步机制:互斥锁和条件变量

前段时间,我研究了 ROS2(Jazzy)机器人开发系统,并将官网中比较重要的教程和概念,按照自己的学习顺序翻译成了中文,进行了整理和记录。到目前为止,已经整理了20多篇文章。如果你想回顾之前的内容,...