Android中TabLayout+ViewPager实现tab和页面联动效果
作者:天鬼 发布时间:2022-02-23 22:41:49
标签:android,tab
TabLayout+ViewPager实现tab和页面联动效果
xml中:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.TabLayout
android:id="@+id/toolbar_tl_tab"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
app:layout_scrollFlags="scroll"
app:tabIndicatorColor="@android:color/holo_green_light"
app:tabSelectedTextColor="@android:color/holo_green_light" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#f0f0f0" />
<android.support.v4.view.ViewPager
android:id="@+id/vp_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
代码中使用:
public class MainActivity extends AppCompatActivity {
private TabLayout toolbar_tl_tab;
private ViewPager vp_container;
private String[] titles = {"标题1", "标题2", "标题3", "标题4"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
toolbar_tl_tab = (TabLayout) findViewById(R.id.toolbar_tl_tab);
vp_container = (ViewPager) findViewById(R.id.vp_container);
toolbar_tl_tab.setupWithViewPager(vp_container);
toolbar_tl_tab.setTabMode(TabLayout.MODE_SCROLLABLE);
vp_container.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return new PageFragment();
}
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
@Override
public int getCount() {
return titles.length;
}
});
}
}
碎片:PageFragment
public class PageFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_page, null);
return view;
}
}
碎片xml:fragment_page.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="页面" />
</LinearLayout>
注意:
1、模式相关
使用滚动模式,特点是超过屏幕可以滚动显示:
toolbar_tl_tab.setTabMode(TabLayout.MODE_SCROLLABLE);
使用屏幕等分模式,特点是显示tab的宽度是屏幕等分后的宽度:
toolbar_tl_tab.setTabMode(TabLayout.MODE_FIXED);
来源:http://www.jianshu.com/p/34fa25843db7?utm_source=tuicool&utm_medium=referral#


猜你喜欢
- 最近,项目上涉及到了图像压缩,发现原有的图像压缩功能,虽然保证了图像的大小300K以内,但是压缩后的图像看的不在清晰,并且,限定了图片的He
- 1. 基础知识集合Java.util包下的常用子类,集合无非就是各种数据结构的应用。集合存在的目的就是为了将数据高效的进行读写,无论哪种具体
- 真正的帮助大家理解红黑树:一、红黑树所处数据结构的位置:在JDK源码中, 有treeMap和JDK8的HashMap都用到了红黑树去存储红黑
- 关闭时可使用如下代码public static void waitUntilTerminate(final ExecutorService
- @PropertySource加载自定义yml文件使用@PropertySource默认加载的是.xml或者 .properties文件,因
- 问题背景: 我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该
- 属性CascadeType.REFRESH:级联刷新,当多个用户同时作操作一个实体,为了用户取到的数据是实时的,在用实体中的数据之前就可以调
- 首先定义两个示例类ClassA,ClassB,用于后续的示例演示package cn.lzrabbit;public class Class
- 一、前言null与NULL不都是表示空值吗?这有什么值得深入讨论的的?首先你在编写Java代码时使用过NULL吗?大概用IDE用习惯了,自动
- 上一篇我们学习了自定义ViewGroup的基本步骤,并做了一个CustomGridLayout的实例,这篇我们继续来说说自定义ViewGro
- 利用属性动画实现优酷菜单,供大家参考,具体内容如下布局文件<RelativeLayout xmlns:android="ht
- 全面解析java注解Java中的常见注解 a.JDK中的注解 @Override 覆盖父类或者父接口的方
- 一、Struts2文件上传 Struts2的文件上传实现非常简单,只需要简单几步就可完成;注意:(1)文件上传的struts2标签
- 抽像类: public abstract class AbUserAll &nbs
- 主要实现的功能:1.程序附带多张拼图随机拼图。2.可手动添加拼图。3.游戏成功判断。4.30秒超时判断。 Puzzle.csus
- yaml介绍YAML(YAML Ain't Markup Language),一种数据序列化格式优点:容易阅读容易与脚本语言交互以数
- 一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(sess
- 类1.什么是类类是事物的属性(外在特征)和行为(具备的功能)的集合2.想要知道Java中类是什么我们要先知道现实生活中的类是什么,因为Jav
- 本文实例为大家分享了C#实现简单文本编辑器的具体代码,供大家参考,具体内容如下建立一个窗体文件,实现对文件的编辑保存和对txt文件的打开界面
- 文件下载是一个软件开发中的常见需求。本文从最简单的下载方式开始步步递进,讲述了文件下载过程中的常见问题并给出了解决方案。并展示了如何使用多线