TabLayout的简单使用
什么是TabLayout
TabLayout是Support Design Library库中的一个控件,它是用来进行分组的,同时也可以作为ViewPager的指示器
TabLayout的简单使用
●tab创建
◇xml布局创建
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:id="@+id/tablayout" android:layout_height="wrap_content"> <android.support.design.widget.TabItem android:layout_width="wrap_content" android:text="tab1" //设置tab显示的文字 android:icon="@mipmap/ic_launcher" //设置tab的图片 android:layout_height="wrap_content" /> <android.support.design.widget.TabItem android:layout_width="wrap_content" android:text="tab2" android:icon="@mipmap/ic_launcher" android:layout_height="wrap_content" /> <android.support.design.widget.TabItem android:layout_width="wrap_content" android:text="tab3" android:icon="@mipmap/ic_launcher" android:layout_height="wrap_content" /> </android.support.design.widget.TabLayout>
◇Java代码动态创建
tabLayout=findViewById(R.id.tablayout); tabLayout.addTab(tabLayout.newTab().setText("标签1").setIcon(R.mipmap.ic_launcher)); tabLayout.addTab(tabLayout.newTab().setText("标签2").setIcon(R.mipmap.ic_launcher)); tabLayout.addTab(tabLayout.newTab().setText("标签3").setIcon(R.mipmap.ic_launcher));
●tab的布局排版
tab的布局排版受两个属性限制app:tabMode【fixed(固定)、scrollable(滚动))】和app:tabGravity(fill(填充)、center(居中))
◇设置app:tabMode=“fixed”然后设置app:tabGravity分别为fill和center时的效果
1)app:tabGravity="fill"
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:id="@+id/tablayout" app:tabMode="fixed" app:tabGravity="fill" android:layout_height="wrap_content"> </android.support.design.widget.TabLayout>
2)app:tabGravity="center"
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:id="@+id/tablayout" app:tabMode="fixed" app:tabGravity="center" android:layout_height="wrap_content"> </android.support.design.widget.TabLayout>
◇设置app:tabMode=“scrollable”然后设置app:tabGravity分别为fill和center时的效果
1)app:tabGravity="fill"
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:id="@+id/tablayout" app:tabMode="scrollable" app:tabGravity="fill" android:layout_height="wrap_content"> </android.support.design.widget.TabLayout>
2)app:tabGravity="center"
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:id="@+id/tablayout" app:tabMode="scrollable" app:tabGravity="center" android:layout_height="wrap_content"> </android.support.design.widget.TabLayout>
●其他设置
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:id="@+id/tablayout" app:tabMode="scrollable" app:tabGravity="center" app:tabIndicatorHeight="5dp" //设置指示线高度,如果想要隐藏指示线可以通过将该属性设置为0dp实现 app:tabIndicatorColor="@color/colorPrimary" //设置指示线颜色 app:tabTextColor="@color/colorPrimary" //设置未选中文字颜色 app:tabSelectedTextColor="@color/colorRed" //设置选中文字颜色 android:layout_height="wrap_content"> </android.support.design.widget.TabLayout>
●绑定ViewPager
这里tab的Text是通过PagerAdapter的getPageTitle方法获取的
public class TabLayoutSimpleActivity2 extends AppCompatActivity { ViewPager viewPager; TabLayout tabLayout; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tablayout_activitysimple); viewPager=findViewById(R.id.vp); tabLayout=findViewById(R.id.tablayout); viewPager.setAdapter(new PagerAdapter() { @Override public int getCount() { return 5; } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view==object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { TextView textView=new TextView(TabLayoutSimpleActivity2.this); textView.setTextSize(50); textView.setText(position+""); container.addView(textView); return textView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } @Nullable @Override public CharSequence getPageTitle(int position) { return "标签"+position; } }); tabLayout.setupWithViewPager(viewPager); } }
个人博客:https://myml666.github.io

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Cisco ISO 计划命令 kron实现配置定时自动备份
如果您想要在Cisco设备上执行计划命令,如果您使用 的 IOS 是12.3(1)以后的新版本那么”kron”无疑是您理想的选择。 举个简单的例子,如果想要在每个星期日天晚上11点钟保存一份running config 到您的tftp(10.1.1.1)服务器那么就可以这么做: Router(config)# kron policy-list Backup Router(config-kron-policy)# show run | redirect tftp://10.1.1.1/test.cfg Router(config-kron-policy)# exit Router(config)# kron occurrence Backup at 23:00 Sun recurring Router(config-kron-occurrence)# policy-list Backup要注意的是,交互式命令不可以用在kron中,比方说 copy running-config start-config就不可以使用。原因是你在使用这条命令的时候,系统会要求你输入确认信息。
- 下一篇
Android中的设计模式之代理模式
参考 《设计模式:可复用面向对象软件的基础 》4.7 Proxy 代理--对象结构型模式 《Android源码设计模式解析与实战》第18章 编程好帮手--代理模式 意图 为其它对象提供一种代理以控制对这个对象的访问 适用性 在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用Proxy模式。 远程代理 为一个对象在不同的地址空间提供局部代表。这一点Android Binde实现跨进程通信很典型 虚代理 根据需要创建开销很大的对象。 保护代理 控制对原始对象的访问。保护代理用于对象应该有不同的访问权限的时候。 智能指引 取代了简单的指针,它在访问对象时执行一些附加操作。 对指向实际对象的引用计数,这样当该对象没有引用时,可以自动释放它,难道Java就是这个原理? 当第一次引用一个持久对象时,将它装入内存 在访问一个实际对象前,检查是否已经锁定了它,以确保其它对象不能改变它。 结构 代理模式结构 角色 Client 客户类,即使用代理类的类型 Subject 抽象主题类 抽象了代理行为 主要职责是声明真实主题与代理的共同接口关系,该类既可以是一个抽象类也可以是一个接口。 RealSu...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6