安卓 TabLayout 选项卡

news/2024/11/22 21:51:02/

安卓 TabLayout 选项卡

  • TabLayout简介
  • Fragment+ViewPager+TabLayout组合使用

TabLayout简介

Tablayout继承自HorizontalScrollView用于页面切换指示器
TabLayout 是属于 com.android.support:design 包的控件,所以需要依赖该包

implementation 'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.2@aar'

Fragment+ViewPager+TabLayout组合使用

activity的xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".mvp.view.activity.MainActivity"><androidx.viewpager.widget.ViewPagerandroid:id="@+id/vp"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="8"></androidx.viewpager.widget.ViewPager><com.flyco.tablayout.CommonTabLayoutapp:tl_textSelectColor="#F10A0A"app:tl_textUnselectColor="#0E0E0E"android:id="@+id/tab"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"></com.flyco.tablayout.CommonTabLayout></LinearLayout>

activity的java文件

public class MainActivity extends AppCompatActivity {private ViewPager vp;private CommonTabLayout tab;private List<Fragment> flist = new ArrayList<>();private List<CustomTabEntity> tlist = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//主页面切换vp = (ViewPager) findViewById(R.id.vp);tab = (CommonTabLayout) findViewById(R.id.tab);//添加数据tlist.add(new TabBean("首页",R.drawable.homeyes,R.drawable.homeno));tlist.add(new TabBean("分类",R.drawable.soyes,R.drawable.sono));tlist.add(new TabBean("购物车",R.drawable.shoppyes,R.drawable.shoppno));tlist.add(new TabBean("我的",R.drawable.meyes,R.drawable.meno));tab.setTabData((ArrayList<CustomTabEntity>) tlist);//添加数据flist.add(new Fragment1());flist.add(new Fragment2());flist.add(new Fragment2());flist.add(new Fragment2());//内部适配器vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {@NonNull@Overridepublic Fragment getItem(int position) {return flist.get(position);}@Overridepublic int getCount() {return flist.size();}});//tab标题关联viewpagertab.setOnTabSelectListener(new OnTabSelectListener() {@Overridepublic void onTabSelect(int position) {vp.setCurrentItem(position);}@Overridepublic void onTabReselect(int position) {}});//viewpager关联tab标题vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {tab.setCurrentTab(position);}@Overridepublic void onPageSelected(int position) {}@Overridepublic void onPageScrollStateChanged(int state) {}});}
}

创建一个tab的bean类

public class TabBean implements CustomTabEntity {private String string;private int yes;private int no;public TabBean(String string, int yes, int no) {this.string = string;this.yes = yes;this.no = no;}@Overridepublic String getTabTitle() {return string;}@Overridepublic int getTabSelectedIcon() {return yes;}@Overridepublic int getTabUnselectedIcon() {return no;}
}

内容fragment创建出来就行内容不需要改动
效果
在这里插入图片描述


http://www.ppmy.cn/news/516355.html

相关文章

ajax tool works,,AJAX Control Toolkit-图解Ajax Control Tool

要利用好Ajax.net&#xff0c;即将学会灵方便用Ajax.net所供给的Ajax Control Toolkit。该控件包供给了许多利用收获很炫的控件&#xff0c;有了它你能迅捷打造一个Ajax网站。从本章开始&#xff0c;我们同时来学习怎样利用Ajax Cotrol Toolkit中的所有控件。 第一步&#xff1…

【Python】自动化构建项目结构样式

引言 在使用Python或者其它编程语言的项目时候&#xff0c;编写README.md 往往是不可或缺的&#xff1b; 而在README.md 中&#xff0c;关于项目结构的样式展示&#xff0c;这个是可选的。不展示也无伤大雅&#xff0c;但有展示的话&#xff0c;有以下优点&#xff1a; 提供…

基于spss的多元统计分析 之 因子分析(4/8)

实验目的&#xff1a; 1&#xff0e;掌握因子分析的基本思想&#xff1b; 2&#xff0e;熟悉掌握SPSS软件进行因子分析的基本操作&#xff1b; 3&#xff0e;利用实验指导的实例数据&#xff0c;上机熟悉因子分析方法。 实验内容&#xff1a; 附表的数据来自一次对液晶电视的调…

钱包私钥丢了等于资产归零了?

我想在币圈行走&#xff0c;大家最害怕的可能不是暴跌。 毕竟常在币圈混&#xff0c;大家也都会明白没有短期的跌幅&#xff0c;就不会有长期的涨幅这个道理。 最害怕的可能是私钥忘了吧。 要知道去中心化的钱包私钥忘了就可以说是资产归零了。 对于我这种常年忘记密码的人&…

硬件钱包亮相、支付宝低调内测,数字人民币离普及应用越来越近了

随着全国多地相继开展数字人民币试点工作&#xff0c;数字人民币正在“飞入寻常百姓家”&#xff0c;测试的场景范围也变得越来越丰富&#xff0c;不断地渗入我们的日常生活中。 无需借助手机的硬件钱包 数字人民币拥有软件钱包和硬件钱包两种形态&#xff0c;即以手机App形式…

苹果AirTags即将发布,防丢器将迎来大发展

根据著名苹果爆料人Jon Prosser的消息&#xff0c;苹果寻物防丢贴AirTags的渲染设计已经曝光。根据Jon Prosser 透露&#xff0c;苹果很有可能会在即将召开的发布会上推出 AirTags。根据此前的消息&#xff0c;苹果 AirTags 可以用来寻找经常“丢失”的物品&#xff0c;比如钥匙…

BTC钱包(wallet.dat 文件密码与私钥的区别)

https://www.chainnode.com/post/375787 第0章 引言   我在2012年的时候&#xff0c;教我爸爸使用支付宝。对于一个完全没有接触过第三方支付的人来说&#xff0c;要让他接受支付宝是安全可靠的&#xff0c;至少是和银行的安全性相当的&#xff0c;其实非常难。我没有多废话…

可以像微信钱包一样?2020年数字钱包技术重要的进化方向(上)

未来钱包将更加安全接地气 还记得你第一次接触数字货币&#xff0c;第一次使用钱包时的感受吗&#xff1f; 笔者还依稀记得&#xff0c;第一次看到助记词页面呈现在眼前时的感受&#xff1a;“这什么鬼&#xff1f;” 心中大大的黑人问号脸。后来总算是找了张纸&#xff0c;把…