全新android Tab控件PagerSlidingTabStrip最简使用方法
来源:互联网 发布:淘宝拍卖和个人闲置 编辑:程序博客网 时间:2024/05/29 07:25
众所周知Android的Tab控件不是很好用,因此Github上的PagerSlidingTabStrip项目被广为使用,该项目地址为:
https://github.com/astuetz/PagerSlidingTabStrip
其示例图如下:
由于其demo代码较长,难以理解,因此我总结了一个最简的使用方法。
第一,在ADT中导入PagerSlidingTabStrip中的library项目,若使用Android Studio则直接导入即可,若使用ADT则需参考我的上一篇文章进行导入:
http://blog.csdn.net/logicteamleader/article/details/45202863
并将library项目改名为PagerSlidingTabStrip-lib
第二,创建自己的项目,其中引用PagerSlidingTabStrip-lib项目。在自己的项目中创建几个Fragment,并继承FragmentPagerAdapter类实现一个MyPagerAdapter类,代码如下(略去了几个Fragment的layout和代码):
package wxbtabexam.apkkids.com;import java.util.ArrayList;import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.util.DisplayMetrics;import android.util.TypedValue;import com.astuetz.PagerSlidingTabStrip;import com.example.wxbtabexam.R;public class HomeActivity extends FragmentActivity {private ViewPager pager;private MyPagerAdapter pagerAdapter;private PagerSlidingTabStrip tabs;@Overrideprotected void onCreate(Bundle arg0) {super.onCreate(arg0);setContentView(R.layout.home_layout);tabs = (PagerSlidingTabStrip) this.findViewById(R.id.tabs);pager = (ViewPager) this.findViewById(R.id.pager);initTabs();ArrayList<Fragment> fragmentlist = new ArrayList<Fragment>();//注意,这三个Fragment需要自己实现ButtonFragment buttonFragment = new ButtonFragment();TextFragment textFragment = new TextFragment();MyListFragment mylistFragment = new MyListFragment();fragmentlist.add(buttonFragment);fragmentlist.add(textFragment);fragmentlist.add(mylistFragment);pagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), fragmentlist);pager.setAdapter(pagerAdapter);final int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources().getDisplayMetrics());pager.setPageMargin(pageMargin);tabs.setViewPager(pager);}/** *定义的属性,参考:https://github.com/astuetz/PagerSlidingTabStrip */ private void initTabs() { /** * 获取当前屏幕的密度 */ DisplayMetrics dm; dm = getResources().getDisplayMetrics(); // 设置Tab是自动填充满屏幕,也就是均分屏幕宽度,每个tab的weight都是一致的 app:pstsShouldExpand="true" tabs.setShouldExpand(true); // 设置Tab的分割线是透明的 app:pstsDividerColor="@android:color/transparent" tabs.setDividerColor(Color.TRANSPARENT); // 设置Tab底部与下面分割的细线的高度 app:pstsUnderlineHeight="1dp" tabs.setUnderlineHeight((int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 2, dm)); // 设置Tab 指示器的高度 app:pstsIndicatorHeight="4dp" tabs.setIndicatorHeight((int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 4, dm)); // 设置Tab标题文字的大小 app:pstsTabTextSize="16sp" tabs.setTextSize((int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_SP, 16, dm)); // 设置Tab Indicator的颜色 app:pstsIndicatorColor="#45c01a"// tabs.setIndicatorColor(Color.parseColor("#45c01a")); int currentColor =0xFF5161BC; tabs.setIndicatorColor(currentColor); // 设置选中Tab文字的颜色 app:pstsSelectedTabTextColor="#45c01a"// tabs.setSelectedTextColor(Color.parseColor("#45c01a")); }//MyPagerAdapter要和上面实现的三个Fragment对应起来class MyPagerAdapter extends FragmentPagerAdapter{private final String[] TITLES = { "Buttons", "TextViews", "List" };private ArrayList<Fragment> fragmentlist;public MyPagerAdapter(FragmentManager fm,ArrayList<Fragment> list) {super(fm);fragmentlist = list;}@Overridepublic CharSequence getPageTitle(int position) {return TITLES[position];}@Overridepublic int getCount() {return fragmentlist.size();}public Fragment getItem(int position) {return fragmentlist.get(position);}}}
如此即可。下面是运行图,虽没有PagerSlidingTabStrip提供的Sample项目优美,但也达到了效果。此外可以仔细研究其sample项目获得更多方法。
0 0
- 全新android Tab控件PagerSlidingTabStrip最简使用方法
- Android:使用pagerslidingtabstrip做Tab
- Android中PagerSlidingTabStrip的简要使用方法
- Tab control控件使用方法
- MFC Tab控件使用方法
- Android 自定义控件——PagerSlidingTabStrip
- fragment+viewpager+tab(PagerSlidingTabStrip)
- TAB Control控件 的使用方法
- TAB Control控件 的使用方法。
- Android tab切换控件
- 自定义控件之:PagerSlidingTabStrip
- MFC中Tab控件的使用方法
- MFC中Tab控件的使用方法
- MFC中tab control控件的使用方法
- MFC中的TAB控件的使用方法案例
- 【Android开源项目分析】TAB导航栏PagerSlidingTabStrip的使用和源码分析
- 最简单的tab控件,纯html
- 标签Tab切换 PagerSlidingTabStrip的使用
- POJ 3087 Shuffle'm Up
- hdu 1010 Tempter of the Bone 深搜+剪枝
- iOS_(id)sender
- Uboot启动过程详解
- Android UI2
- 全新android Tab控件PagerSlidingTabStrip最简使用方法
- 开始写博客
- 运算符重载
- 对比传统关系型数据库,NoSQL有着非常显著的性能和扩展性优势,然而这些优点却建立在一些关键功能的丢失之上,比如事务、join等。那么在数据体积激增的当下,究竟哪个数据库才会适合你的场景
- 101到200间的素数及其个数
- Bitmap.createBitmap参数异常之java.lang.IllegalArgumentException: width and height must be > 0
- 多重继承
- Boost库问题:无法识别的外部符号……
- Intent知识小学习