简单的TabLayout+Fragment选项卡
TabLayout属性:
app:tabIndicatorColor="#fff" //下方滚动的下划线颜色
app:tabIndicatorHeight="10dp" //滚动的下划线的宽度
app:tabSelectedTextColor="#00f" // tab被选中后,文字的颜色
app:tabTextColor="#fff" // tab默认的文字颜色
app:tabMode="scrollable" // Tab可滚动 默认不可以滚动 app:tabMaxWidth="0dp" //Tab填充 TabLayout依赖:implementation 'com.android.support:design:26.1.0'
选项卡布局:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout 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"
tools:context="com.lantianbaiyunyk.asus.tablayout.MainActivity"> <android.support.design.widget.TabLayout
android:layout_height="50dp"
android:layout_width="match_parent"
android:id="@+id/course_search_tablayout"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabTextColor="#666666"
app:tabSelectedTextColor="#0414f6"
app:tabIndicatorColor="#0414f6"/> <LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:background="#ddd"
> <android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/search_pager"
> </android.support.v4.view.ViewPager> </LinearLayout> </TableLayout>
MyActivity:
public class MainActivity extends AppCompatActivity {
    private TabLayout course_search_tablayout;
    private ViewPager search_pager;
    private ArrayList<android.support.v4.app.Fragment> mFragments = new ArrayList<>();
    private ArrayList<String> list = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        Fragment1 fragment1 = new Fragment1();
        Fragment2 fragment2 = new Fragment2();
        Fragment3 fragment3 = new Fragment3();
        mFragments.add(fragment1);
        mFragments.add(fragment2);
        mFragments.add(fragment3);
        list.add("页面一");
        list.add("页面二");
        list.add("页面三");
        course_search_tablayout.setupWithViewPager(search_pager);
        search_pager.setAdapter(new Adapter(getSupportFragmentManager(),mFragments,list));
    }
    private void initView() {
        course_search_tablayout = (TabLayout) findViewById(R.id.course_search_tablayout);
        search_pager = (ViewPager) findViewById(R.id.search_pager);
    }
}
Adapter:
public class Adapter extends FragmentPagerAdapter{
    private ArrayList<Fragment> fragments;
    private ArrayList<String> list;
    public Adapter(FragmentManager fm, ArrayList<Fragment> fragments, ArrayList<String> list) {
        super(fm);
        this.fragments = fragments;
        this.list = list;
    }
    @Override
    public Fragment getItem(int position) {
        return fragments.get(position);
    }
    @Override
    public int getCount() {
        return fragments.size();
    }
    @Override
    public CharSequence getPageTitle(int position) {
        return list.get(position);
    }
}
简单的TabLayout+Fragment选项卡的更多相关文章
- 基于jQuery简单实用的Tabs选项卡插件
		
jQuery庞大的插件库总是让人欢喜让人忧,如何从庞大的插件库里挑出适合自己的插件,总是让很多缺少经验的朋友头疼的事!今天为大家推荐几款简单实用的Tabs选项卡插件,推荐理由:简单易用灵活,样式美观, ...
 - 巧力避免ViewPager的预加载数据,Tablayout+Fragment+viewPager
		
问题描述 最近在进行一个项目的开发,其中使用到了Tablayout+Fragment+viewPager来搭建一个基本的框架,从而出现了设置数据适配器的时候,item的位置错乱问题.我打印log日志的 ...
 - TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter实现Tab标签
		
首先来看下实现的效果吧: 最近在项目中实现这个效果的时候.尽管自己磕磕绊绊的实现了,可是知识确实模模糊糊的,今天天气异常的冷,在加上这个知识不太熟练,实在是没有心情进行接下来的计划,干脆借着这个时间, ...
 - ViewPager + TabLayout + Fragment + MediaPlayer的使用
		
效果图 在gradle里导包 implementation 'com.android.support:design:28.0.0' activity_main <?xml version=&q ...
 - Android Fragment(三)ListFragment简单介绍以及Fragment之间通信
		
一.Fragment通信简单介绍:Fragments之间是不能够直接通信的,他们之间的通信是通过Activity这个中间件来通信的, 为了让Fragment跟它的Activity通信,我们可以在Fra ...
 - 【 Android 】ViewPager + TabLayout + Fragment 数据初始化问题
		
在 ViewPager 和 Fragment 配合使用的时候,ViewPager 会使用预加载机制,使得我们在没有切换到到对应页面时,就已经加载好了,这是个非常不好的用户体验. 所以本示例项目就诞生了 ...
 - android TabLayout设置选项卡之间的距离无效已解决
		
根据下面的链接设置完距离后无法生效 https://www.jb51.net/article/131304.htm layout <com.google.android.material.tab ...
 - 使用Android Support Design 控件TabLayout 方便快捷实现选项卡功能
		
1.概述 TabLayout是在2015年的google大会上,google发布了新的Android Support Design库的新组件之一,以此来全面支持Material Design 设计风格 ...
 - Android开发——Fragment的简单使用总结
		
前言: 之前搞项目的时候,就使用了这个Fragment,中间遇到了许多坑,把坑都解决了,现在写一篇较为简单的Fragment使用总结 Fragment的简单介绍: 简单来说,Fragment其实可以理 ...
 
随机推荐
- Web开发经验谈之F12开发者工具/Web调试[利刃篇]
			
引语:如今的整个Web开发行业甚至说整个软件开发行业,已经相当成熟,基本上已经很少找不到没有前人做过的东西了,或者换句话说,你想要实现的功能,你总能在某个地方搜索到答案,关键是你有没有这个时间精力去搜 ...
 - IDEA中读取 resource目录下文件
			
1. 资源文件 2. 加载文件 public void test() { try { System.out.println("begin test"); String filepa ...
 - python中ones的含义和用法
			
ones是numpy的一个内置函数,作用是生成参数为一的数组.英文解释: Return a new array of given shape and type, filled with ones. 例 ...
 - Python--DBUtil
			
Python--DBUtil包 1 简介 DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装.DBUtils来自Webware for Python. DB ...
 - 关于Python的import机制原理
			
很多人用过python,不假思索地在脚本前面加上import module_name,但是关于import的原理和机制,恐怕没有多少人真正的理解.本文整理了Python的import机制,一方面自己总 ...
 - Android多线程编程<一>Android中启动子线程的方法
			
我们知道在Android中,要更新UI只能在UI主线程去更新,而不允许在子线程直接去操作UI,但是很多时候,很多耗时的工作都交给子线程去实现,当子线程执行完这些耗时的工作后,我们希望去修改 ...
 - Apache Commons Beanutils 一 (使用PropertyUtils访问Bean属性)
			
BeanUtils简要描述 beanutils,顾名思义,是java bean的一个工具类,可以帮助我们方便的读取(get)和设置(set)bean属性值.动态定义和访问bean属性: 细心的话,会发 ...
 - Java并发编程笔记之LinkedBlockingQueue源码探究
			
JDK 中基于链表的阻塞队列 LinkedBlockingQueue 原理剖析,LinkedBlockingQueue 内部是如何使用两个独占锁 ReentrantLock 以及对应的条件变量保证多线 ...
 - 简单的端口扫描器(TCP connect)
			
端口扫描器原理相对简单,采用的是TCP connect状态判断.具体来说:TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭.该方式扫描 ...
 - 教你控制 RecyclerView 滑动的节奏
			
最近,PM升级改版落地页,其中有一个很奇怪的交互需求,需求是这样的: 用户在该页面可以上下无限滑动,但是,在上拉滑动过程中,当内容切换为另一个内容的时候,新的内容先吸顶,然后停止滑动,让用户知道他已经 ...