22.Android 十分方便的滑动标签页EasySlidingTabs
来源:互联网 发布:域名多少钱一年 编辑:程序博客网 时间:2024/05/16 11:15
22.Android 十分方便的滑动标签页EasySlidingTabs
- Android 十分方便的滑动标签页EasySlidingTabs
- 前言
- Gradle
- EasySlidingTabs属性
- EasySlidingTabs布局
- FragmentPagerAdapter
- EasySlidingTabs设置Tab背景
- Github传送门
- 效果图
前言
其实滑动标签页是很常见的,网上搜也是一大堆。但是好用、简单、少bug、可扩展的库实在不多。很多想在做滑动标签页的时候也是经常想到各种不靠谱的库,虽然不难,但是容易坑自己。
原三星底层App大神JiangEcho提供技术支持
Gradle
dependencies { compile 'com.camnter.easyslidingtabs:easyslidingtabs:0.2'}
EasySlidingTabs属性
这些属性的名字都是很简单的英文,不难!
<declare-styleable name="EasySlidingTabs"> <attr name="easyIndicatorColor" format="color" /> <attr name="easyUnderlineColor" format="color" /> <attr name="easyTabTextColor" format="color" /> <attr name="easySelectedTagTextColor" format="color" /> <attr name="easyDividerColor" format="color" /> <attr name="easyIndicatorHeight" format="dimension" /> <attr name="easyUnderlineHeight" format="dimension" /> <attr name="easyDividerPadding" format="dimension" /> <attr name="easyTabPaddingLeftRight" format="dimension" /> <attr name="easyTabBackground" format="reference" /> <attr name="easyScrollOffset" format="dimension" /> <attr name="easyShouldExpand" format="boolean" /> <attr name="easyTextAllCaps" format="boolean" /> <attr name="easyIndicatorDrawable" format="reference" /> </declare-styleable>
EasySlidingTabs布局
真的十分简单 > . < 。
activity_main.xml
<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=".MainActivity"> <com.camnter.easyslidingtabs.widget.EasySlidingTabs android:id="@+id/easy_sliding_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:easyIndicatorColor="#ff57C1CC" app:easyUnderlineColor="#ffdddddd" app:easyTabTextColor="#ffFF4081" app:easySelectedTagTextColor="#ff57C1CC" android:paddingBottom="16dp" android:paddingTop="16dp" /> <android.support.v4.view.ViewPager android:id="@+id/easy_vp" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /></LinearLayout>
FragmentPagerAdapter
public class TabsFragmentAdapter extends FragmentPagerAdapter implements EasySlidingTabs.TabsTitleInterface { private String[] titles; private List<Fragment> fragments; public TabsFragmentAdapter(FragmentManager fm, String[] titles, List<Fragment> fragments) { super(fm); this.fragments = fragments; this.titles = titles; } @Override public SpannableString getTabTitle(int position) { CharSequence title = this.getPageTitle(position); if (TextUtils.isEmpty(title)) return new SpannableString(""); SpannableString spannableString = new SpannableString(title); return spannableString; } /** * This method may be called by the ViewPager to obtain a title string * to describe the specified page. This method may return null * indicating no title for this page. The default implementation returns * null. * * @param position The position of the title requested * @return A title for the requested page */ @Override public CharSequence getPageTitle(int position) { if (position < titles.length) { return titles[position]; } else { return ""; } } /** * Return the Fragment associated with a specified position. * * @param position */ @Override public Fragment getItem(int position) { Fragment fragment = this.fragments.get(position); if (fragment != null) { return this.fragments.get(position); } else { return null; } } @Override public int getTabDrawableBottom(int position) { return 0; } @Override public int getTabDrawableLeft(int position) { return 0; } @Override public int getTabDrawableRight(int position) { return 0; } @Override public int getTabDrawableTop(int position) { return 0; } /** * Return the number of views available. */ @Override public int getCount() { return this.fragments.size(); }}
EasySlidingTabs设置Tab背景
easyslidingtabs模块下的bg_easy_sliding_tabs.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_shortAnimTime"> <item android:state_pressed="true" android:drawable="@color/bg_easy_sliding_tabs_pressed" /> <item android:state_focused="true" android:drawable="@color/bg_easy_sliding_tabs_pressed" /> <item android:drawable="@android:color/transparent" /></selector>
在这修改背景色!!
Github传送门
EasySlidingTabs
效果图
0 0
- 22.Android 十分方便的滑动标签页EasySlidingTabs
- Android 十分方便的EasyRecyclerView
- 28.Android 十分方便的EasyRecyclerView
- 十分简单方便的二维码工具
- Android开发--滑动标签页的实现
- Android RecycleView 的findChildViewUnder()方法,十分方便返回指定位置的childView
- Android RecycleView 的findChildViewUnder()方法,十分方便返回指定位置的childView
- Android左右滑动标签页
- Android底部/顶部滑动菜单,方便调用的工具类
- 一个移植十分方便的malloc函数族的实现
- 不用一个一个分区的整理磁盘,十分快捷方便。
- 一个移植十分方便的类似printf函数
- 一个移植十分方便的类似printf函数,升级版
- android FragmentTabhost+ViewPager实现可滑动的标签页
- Android 实现下划线能滑动的Tab标签页
- ubuntu远程桌面链接 十分方便
- android 二维码的集成十分简单
- 教你实现Android下划线能滑动的Tab标签页
- ngrok 的简单使用
- UIScrollView
- Android中数据存储和访问方式
- 如何正确导入Android支持库
- 2014牡丹江区域赛题解
- 22.Android 十分方便的滑动标签页EasySlidingTabs
- MDK-ARM下mini2440 Nandflash算法实现及下载设置
- 【SSH项目实战】国税协同平台-1.项目介绍
- 为Web应用增加Struts2支持
- NYOJ——105 九的余数
- 格雷码代码
- 黑马程序员——ObjectiveC基础——类对象和SEL类型
- cocos2d clipboard
- 同步异步浅析