谷歌官方扩展UI组件---SlideTabLayout
2019独角兽企业重金招聘Python工程师标准>>>
Google官方推出了许多扩展的UI公共组件库,在这里,我们介绍一个比较实用的组件SlidingTabLayout,效果图如下:
<img src="http://fyales.qiniudn.com/Screenshot_2015-04-09-10-40-04.png" style="width:50%;height=50%"/>
另外网易新闻的栏目展示用的也是类似的组件。
用法
首先将该组件的源代码拷贝到你的项目中,SlidingTabLayout.java和SlidingTabStrip.java,项目地址。
接下来就可以在MainActivity里面进行布局了:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><com.fyales.slidetablayout.SlidingTabLayoutandroid:id="@+id/sliding_tabs"android:layout_width="match_parent"android:layout_height="wrap_content" /><android.support.v4.view.ViewPagerandroid:id="@+id/viewpager"android:layout_width="match_parent"android:layout_height="0px"android:layout_weight="1"android:background="@android:color/white" /></LinearLayout>
然后,写一个基本的Fragment,用于展示:
package com.fyales.slidetablayout;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;/*** @author fyales*/public class BaseFragment extends Fragment {private static final String DATA = "data";@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment,container,false);TextView textView = (TextView)view.findViewById(R.id.text);textView.setText("Fragment#" + getArguments().getInt(DATA,0));return textView;}@Overridepublic void onViewCreated(View view, Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);}public static Fragment newInstance(int type){Fragment fragment = new BaseFragment();Bundle bundle = new Bundle();bundle.putInt(DATA,type);fragment.setArguments(bundle);return fragment;}}
定义Adapter(继承自FragmentPagerAdapter),覆写getItem()方法
package com.fyales.slidetablayout;import android.content.Context;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;/*** @author fyales*/public class TabViewPagerAdapter extends FragmentPagerAdapter {private final int PAGE_COUNT = 3;private String mTabTitle[] = new String[]{"朝代","人物","战争"};private Context mContext;public TabViewPagerAdapter(FragmentManager fm, Context context) {super(fm);this.mContext = context;}@Overridepublic Fragment getItem(int position) {return BaseFragment.newInstance(position);}@Overridepublic int getCount() {return PAGE_COUNT;}@Overridepublic CharSequence getPageTitle(int position) {return mTabTitle[position];}}
最后我们就可以在MainActivity.java中直接使用了
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);viewPager.setAdapter(new TabViewPagerAdapter(getSupportFragmentManager(),MainActivity.this));SlidingTabLayout slidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);// slidingTabLayout.setDistributeEvenly(true); 是否填充满屏幕的宽度slidingTabLayout.setViewPager(viewPager);}
自定义样式和自定义下划线颜色
SlidingTabLayout同样有一些自定义的方法供你使用,你可以定义下划线的颜色或者自定义样式,通过以下方法调用
//自定义下划线颜色slidingTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer(){@Overridepublic int getIndicatorColor(int position) {return Color.RED;}});//自定义展示样式slidingTabLayout.setCustomTabView(R.layout.your_custom_tab, 0);
项目Demo地址。
转载于:https://my.oschina.net/weiCloudS/blog/397775
谷歌官方扩展UI组件---SlideTabLayout相关推荐
- UI组件库的引用方式
一.引入组件库: 引入官方组件库有两种方式,分别是:通过npm下载依赖项到本地,以及在 app.json 中设置 useExtendedLib: { "weui": true}. ...
- 小程序子组件向父组件传值_一套组件化、可复用、易扩展的微信小程序 UI 组件库...
如何使用 Wux Weapp 是一套组件化.可复用.易扩展的微信小程序 UI 组件库.在开始使用之前,需要先阅读微信小程序自定义组件的相关文档. 通过 npm 安装,需要依赖小程序基础库 2.2.1 ...
- WeUI - 微信官方推出的免费开源 UI 组件库,上手简单,风格简约,在微信生态开发轻量项目的绝佳选择
微信早年发布的 UI 框架,对想要创建让微信用户感到熟悉的应用来说,是一个好选择. 关于 WeUI WeUI 一款由腾讯微信团队开发的 UI 组件库,是一套同微信原生视觉体验一致的基础样式库,由微信官 ...
- Android官方开发文档Training系列课程中文版:Activity测试之UI组件测试
原文地址:http://android.xsoftlab.net/training/activity-testing/activity-ui-testing.html 一般来说,正因为Activity ...
- 【分享】Vue 资源典藏(UI组件、开发框架、服务端、辅助工具、应用实例、Demo示例)...
Vue 资源典藏,包括:UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和 ...
- 谷歌的android下拉刷新页面,Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新
<Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新> 下拉刷新在如今移动开发中应用如此广泛和普遍,以至于谷歌干脆在SDK中给予支持.在android ...
- Android开源介绍-UI组件
终端的开发,UI的重要性不言而喻,如何快速开发出优雅漂亮的UI,android的一些开源UI组件,提供了很好的参考. 参考: oschina Android UI组件 最火的Android开源项目( ...
- 如何使用Vue集成其它UI组件?如何阅读UI官网?移动端组件Vant实例教程(熬夜干货)
如何使用Vue集成其它UI组件 前言 一.Vant是什么? 二.基础环境准备 1.1 了解是根本 1.2 安装 1.3 引入组件 3.1 步骤一 3.2 步骤二 3.3 步骤三 二.事件绑定 2.1 ...
- 5 款最棒的 Vue 移动端 UI 组件库 - 特别针对国内使用场景推荐
本文完整版:<最棒的 Vue 移动端 UI 组件库 - 特别针对国内使用场景推荐> Vue 移动端 UI 组件库推荐 Vant 3 - 有赞移动 UI 组件库,支持 Vue 3 微信小程序 ...
最新文章
- Elixir: 开发和发布Elixir库
- leetcode 104. Maximum Depth of Binary Tree
- 清理offset_关于 kafka 日志清理策略的问题
- ffplay.c函数结构简单分析(画图)
- 【语音识别】基于matlab MFCC+IPC特征+SVM中英语种识别【含Matlab源码 612期】
- CentOS 7完全卸载MySQL
- X96 MAX变砖后usb烧录修复(by quqi99)
- 面试技巧——程序员简历模板
- 8.4 不能外包的解谜算法
- 自定义view绘制太极图案
- S5P4418 Android实时时钟框架介绍
- Intel处理器 天梯图
- c#(WinForm)绘制两个圆的内公切线
- Linux中级(七)SAMBA文件服务器
- 事务隔离级别与事务传播行为简介
- 剪辑视频怎么加音效 视频音效常用都有哪些类型
- 内网渗透----Windows下信息收集
- miui8.5开发者选项USB调试模式
- 群晖中安装Firefly记账软件,使用安卓客户端登录
- 通过js实现金字塔(星号金字塔,回文对称数字金字塔)
热门文章
- MySQL分库分表使用Snowflake全局ID生成器(3rd)
- (asp.net)百度浏览器Cookie的神奇bug
- NTT DOCOMO将部署多供应商NFV技术
- MySQL数据库多种安装方法及企业级安装实践
- 用InstallShield 打包工具 打 Win32 程序 (depends.exe 用看程序都依赖了哪些dll)
- ubuntu访问win7
- Node.js项目实践:构建可扩展的Web应用
- solrlucene3.6.0源码解析(三)
- 2012体感发展加速,微软再添新对手
- 一段关于低价的对话(被低价困扰的安利伙伴进!)