此篇博客主要详细介绍时下比较流行的两个android开源组件的使用,AnctionBarsherlock与viewpagerindicator,具体使用将以demo形式呈现,先上效果图,看是否是你需要的。
一步:下载资源,github 是好东东。
这是两个开源组件的Github地址,具体你想用Git同步还是svn,自选
https://github.com/JakeWharton/ActionBarSherlock
https://github.com/JakeWharton/Android-ViewPagerIndicator
二步:开始工程的配置和组件的使用。在工程右击--properties --android 添加Library
添加viewpagerindicator组件的布局文件simple_tabs.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.viewpagerindicator.TabPageIndicator android:id="@+id/indicator" android:layout_height="wrap_content" android:layout_width="fill_parent" /> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout>
添加Fragments的布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>
创建 TabDemoActivity继承sherlockFragmentActivity
package com.example.blogsit; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.viewpagerindicator.PageIndicator; import com.viewpagerindicator.TabPageIndicator; /** * 微博 : @陈华blogsit * @author blogsit.cn * */ public class TabDemoActivity extends SherlockFragmentActivity { private static final String[] CONTENT = new String[] { "分组一", "分组二", "分组三", "分组四", "分组五" }; TabFragmentAdapter mAdapter; ViewPager mPager; PageIndicator mIndicator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_tabs); mAdapter = new TabFragmentAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); mIndicator = (TabPageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); } class TabFragmentAdapter extends FragmentPagerAdapter { private int mCount = CONTENT.length; public TabFragmentAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return TabFragment.newInstance(String.valueOf(position)); } @Override public int getCount() { return mCount; } @Override public CharSequence getPageTitle(int position) { return CONTENT[position]; } } }
添加Fragment子类TabFragment
package com.example.blogsit; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.viewpagerindicator.PageIndicator; import com.viewpagerindicator.TabPageIndicator; /** * 微博 : @陈华blogsit * @author blogsit.cn * */ public class TabDemoActivity extends SherlockFragmentActivity { private static final String[] CONTENT = new String[] { "分组一", "分组二", "分组三", "分组四", "分组五" }; TabFragmentAdapter mAdapter; ViewPager mPager; PageIndicator mIndicator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_tabs); mAdapter = new TabFragmentAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); mIndicator = (TabPageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); } class TabFragmentAdapter extends FragmentPagerAdapter { private int mCount = CONTENT.length; public TabFragmentAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return TabFragment.newInstance(String.valueOf(position)); } @Override public int getCount() { return mCount; } @Override public CharSequence getPageTitle(int position) { return CONTENT[position]; } } }
使用Fragment方便管理tab页,viewpagerindicator使用场景非常常见,在很多应用的重新安装的开始引导页中也可以用到。具体实例在Viewpageridicator的Github的samplelist中有详细介绍。请关注 @陈华blogist 微博,有 使用问题微博交流,其实下面有详细的代码,上图是实际运行效果。并在产品中已经使用。
相关推荐
Java Swing是目前图形界面设计的主流开发工具,《Java Swing图形界面开发与案例详解[1]》从实用的角度出发,通过大量实例全面介绍Java Swing中各种组件的应用及图形界面的开发技术。《Java Swing图形界面开发与案例...
ANSYS Workbench基础教程与实例详解
FEKO 5.4 电磁场分析技术与实例详解-2009
此为《HTML5开发精要与实例详解》的全部配套源码 本书由资深Web开发专家亲自执笔,内容的权威性上应该是毋庸置疑的。 本书在内容结构上将继承《HTML 5与CSS 3权威指南》一书的优点,几乎每个知识点都将配一个精心...
Java生产环境下性能监控与调优详解视频教程 jstat查看JVM统计信息 jstack与线程的状态 MAT 分析内存溢出的方法 可视化工具分析GC日志 通过这套视频学习如何在生产环境下进行性能监控与调优。 视频在百度网盘中...
Java Swing图形界面开发与案例详解 .王鹏等.扫描版.pdf
工程电磁分析技术与实例详解是有限元仿真技术重要内容,是学习的经典资料
二叉树的创建与遍历二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法详解及实例二叉树的创建与遍历算法...
基于Python金融大数据挖掘与分析全流程详解案例代码.zip基于Python金融大数据挖掘与分析全流程详解案例代码.zip基于Python金融大数据挖掘与分析全流程详解案例代码.zip基于Python金融大数据挖掘与分析全流程详解案例...
《李明洋-CST微波工作室入门与应用详解》是一份全面介绍CST微波工作室的教育资源,由知名专家李明洋提供。这份资料旨在帮助初学者快速掌握CST微波工作室的基础操作,并深入理解其在微波工程中的实际应用。通过这份...
Android核心技术与实例详解 第2版
搜索引擎技术与原理详解; 搜索引擎:什么是搜索引擎?搜索引擎技术与原理详解; 搜索引擎:什么是搜索引擎?搜索引擎技术与原理详解; 搜索引擎:什么是搜索引擎?搜索引擎技术与原理详解; 搜索引擎:什么是搜索...
Isight参数化理论与实例详解,实现跨学科多目标优化
Visual_Basic.NET图形图像编程与实例详解
ANSYS 9.0 经典产品高级分析技术与实例详解(高清完整版) ,pdf格式,由于上传大小限制,共5部分
数据库系统工程师考试考点分析与真题详解 电子工业出版社
《软件评测师考试考点分析与真题详解》张友生编著 第二部分
Python金融大数据挖掘与分析全流程详解-学习笔记及案例代码.zip Python金融大数据挖掘与分析全流程详解-学习笔记及案例代码.zip Python金融大数据挖掘与分析全流程详解-学习笔记及案例代码.zip Python金融大数据挖掘...
ANSYS Workbench基础教程与实例详解(第2版),全面的PDF书,分享一下