ViewPagerIndicator作为一款分页指标小部件兼容ViewPager,封装上做得非常不错,目前已为众多知名应用所使用。

ViewPagerIndicator+viewpager实现如下效果:(注:不需要导入或引入啥包就可实现)

六个类就可实现上图效果

MainActivity.java

  1. public class MainActivity extends FragmentActivity {
  2. private static final String[] CONTENT = new String[] { "推荐", "热点", "视频", "本地", "科技", "健康" };
  3.  
  4. private List<Fragment> list=new ArrayList<Fragment>();
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9.  
  10. FragmentPagerAdapter adapter = new GoogleMusicAdapter(getSupportFragmentManager());
  11.  
  12. ViewPager pager = (ViewPager)findViewById(R.id.pager);
  13. pager.setAdapter(adapter);
  14.  
  15. TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);
  16. indicator.setViewPager(pager);
  17. }
  18.  
  19. class GoogleMusicAdapter extends FragmentPagerAdapter {
  20. public GoogleMusicAdapter(FragmentManager fm) {
  21. super(fm);
  22. list.add(new TestFragment(CONTENT[0]));
  23. list.add(new TestFragment(CONTENT[1]));
  24. list.add(new TestFragment(CONTENT[2]));
  25. list.add(new TestFragment(CONTENT[3]));
  26. list.add(new TestFragment(CONTENT[4]));
  27. list.add(new TestFragment(CONTENT[5]));
  28. }
  29.  
  30. @Override
  31. public Fragment getItem(int position) {
  32. return list.get(position);
  33. }
  34.  
  35. @Override
  36. public CharSequence getPageTitle(int position) {
  37. return CONTENT[position % CONTENT.length].toUpperCase();
  38. }
  39.  
  40. @Override
  41. public int getCount() {
  42. return CONTENT.length;
  43. }
  44. }
  45. }

Fragment.Java

  1. public final class TestFragment extends Fragment {
  2.  
  3. private String s;
  4.  
  5. public TestFragment(String s)
  6. {
  7. this.s=s;
  8. }
  9.  
  10. @Override
  11. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  12.  
  13. return inflater.inflate(R.layout.fragment_news, container, false);
  14. }
  15.  
  16. @Override
  17. public void onActivityCreated( Bundle savedInstanceState) {
  18. // TODO Auto-generated method stub
  19. super.onActivityCreated(savedInstanceState);
  20. View view=getView();
  21. TextView te=(TextView)view.findViewById(R.id.textView1);
  22. te.setText(s);
  23. }
  24.  
  25. public void initView() {
  26. }
  27. }

工具类代码代码太多未给出,直接下载即可。

源码点击下载:https://github.com/DickyQie/android-tab

ViewPagerIndicator+viewpager的简单使用,不需要导入Library包的更多相关文章

  1. ViewPagerIndicator+viewpager指示器详解

    前几天学习了ViewPager作为引导页和Tab的使用方法.后来也有根据不同的使用情况改用Fragment作为Tab的情况,以及ViewPager结合FragmentPagerAdapter的使用.今 ...

  2. ViewPager的简单用法+适配器+监听器的介绍

    之前的actionbar+fragment文章中写过viewpager的简单用法,但因为是融合的文章,所以今天把viewpager提取出来写了.方便查询浏览~ 思路: 1.在布局文件中设置viewpa ...

  3. android studio 0.8.11 如何导入Library(新手向)

    网上下了个ViewPagerIndicator的库,下载下来是个zip包,解压开来,里面有一个library和一个sample文件夹,还有一些其他的配置文件. 其中library就是我们新项目中要引入 ...

  4. Android Studio 简介及导入 jar 包和第三方开源库方[转]

    原文:http://blog.sina.com.cn/s/blog_693301190102v6au.html Android Studio 简介 几天前的晚上突然又想使用 Android Studi ...

  5. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  6. 从外部导入jar包的三种方式

    我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作 ...

  7. 解决jqplot与jquery-ui导入必要包时的冲突

    解决jqplot与jquery-ui导入必要包时的冲突 对于一个网页中,即要有jqplot的画图,又要有jquery-ui的风格显示! 但在导入必要的包时,出现了问题! 先导入jqplot的必要包: ...

  8. 安卓---下拉刷新---上拉加载---解决导入library等自生成库文件失败的问题

    本文的下拉刷新以及上拉加载都是用PullToRefresh实现的,关于PullToRefresh的介绍以及源码,网上可以找到很多,本人在此不再赘述. PullToRefresh是一套实现非常好的下拉刷 ...

  9. [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目

    (1)项目导入JAR包:1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面.2.右键点击项目,Bulid Path->Configure Build Path3.在设置Libraie ...

随机推荐

  1. php判断数组元素是否存在某个字符串的方法

    php判断数组元素是否存在某个字符串的方法: 方法一:采用in_array(value,array,type) type 可选.如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同. ...

  2. iphone6 inline-flex兼容问题

    在编写微信端页面时,遇到这样的问题:position属性为flex的导航栏,其li标签在其余设备上显示正常,但在iphone6上浮动错误. 究其原因,是iphone6不支持position属性中的fl ...

  3. oracle用户名和密码到期后如何处理

    原因:确定是由于Oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致. 影响: 1.密码过期后,业务进程连接数据库异常,影响业务使用. 2. ...

  4. 03: Django Model数据库操作

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

  5. 20145106 《Java程序设计》第8周学习总结

    教材学习内容总结 NIO即New IO.对于高级输入/输出处理.java从JDK1.4开始提供了NIO,在JAVA SE 7 中又提供了NIO2,认识这些高级输入/输出处理API(Applicatio ...

  6. CSS实现三角形、梯形、平行四边形、圆形、椭圆形、对话框、自适应正方形

    本文篇幅较长,希望能坚持看完,转载请注明出处,如果觉得好文请给个赞吧 CSS实现梯形 CSS实现三角形和梯形主要是依靠border是梯形的特性来做的,有点像相框的那种感觉. 首先我们先给一个正方形设置 ...

  7. [noip模拟题]合理种植

    [问题描述] 大COS在氯铯石料场干了半年,受尽了劳苦,终于决定辞职.他来到表弟小cos的寒树中学,找到方克顺校长,希望寻个活干. 于是他如愿以偿接到了一个任务…… 美丽寒树中学种有许多寒树.方克顺希 ...

  8. 嵌入式C语言--面试题

    C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法.这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是 ...

  9. HDU 2089 不要62 (数位DP)题解

    思路: 详解 数位DP入门题dp[pos][sta],pos代表当前位数是第几位,sta代表当前状态,因为题目中只要不出现64,所以当前状态只分为两种:前一位是6或不是. #include<io ...

  10. Farey Sequence (素筛欧拉函数/水)题解

    The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/ ...