全新android Tab控件PagerSlidingTabStrip最简使用方法

众所周知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.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.TypedValue;

import com.astuetz.PagerSlidingTabStrip;
import com.example.wxbtabexam.R;

public class HomeActivity extends FragmentActivity {
	private ViewPager pager;
	private MyPagerAdapter pagerAdapter;
	private PagerSlidingTabStrip tabs;
	private int currentColor =0xFF5161BC;

	@Override
	protected 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);
		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);
		changeColor(currentColor);
	}

	private void changeColor(int newColor) {

		tabs.setIndicatorColor(newColor);
		currentColor = newColor;
	}

	//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;
		}

		@Override
		public CharSequence getPageTitle(int position) {
			return TITLES[position];
		}

		@Override
		public int getCount() {
			return fragmentlist.size();
		}

		public Fragment getItem(int position) {
			return fragmentlist.get(position);
		}
	}

}

如此即可。下面是运行图,虽没有PagerSlidingTabStrip提供的Sample项目优美,但也达到了效果。此外可以仔细研究其sample项目获得更多方法。

时间: 2024-11-09 22:10:09

全新android Tab控件PagerSlidingTabStrip最简使用方法的相关文章

Android常用控件:进度条

各种进度条属于 ProgressBar的子类 Sytle: 水平风格:Horizontal小风格:Small大风格:Large反向风格:Inverse小反向风格:Small.Inverse大反向风格:Large.Inverse 设置style:   style="?android:attr/progressBarStyle..." 主要属性:最大值:max当前进度:progress次要进度值:SecondaryProgress --效果类似于看电影那些缓冲 判断进度条是转圈还是水平的方

Android - 交换控件位置:基于LayoutParams的瞬间交换与基于ObjectAnimator动画效果交换

现需要交换两个控件(本文中是两个RelativeLayout),找到了两个方法: 1.使用LayoutParams改变两个layout的属性,即其相对关系(below等),实现位置的交换,但是并没有交换的动画效果,是"瞬间"交换. 2.使用animation交换控件位置,实现了我需要的动画效果. 如下图,交换layoutOne 与layoutTwo . 一.首先介绍使用LayoutParams的方法. <span style="font-size:18px;"

ArcGIS for Android地图控件的5大常见操作

原文地址: ArcGIS for Android地图控件的5大常见操作 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/arcgis_mobile/article/details/7801467   GIS的开发中,什么时候都少不了地图操作.ArcGIS for Android中,地图组件就是MapView,MapView是基于Android中ViewGroup的一个类(参考),也是ArcGIS Runtime SDK for

终于知道如何使Tab控件的不出现白边的方法了

如下图,在棋盘右侧添加了Tab控件,做成属性页的样子,但出现了白边,很不美观: 后来发现,需要把Tab空间的Owner Draw Fixed 设置为TRUE.但问题又来了,属性页上的标题文字不显示了,结果如图: 继续搜索,原来需要CTabCtrl的DrawItem函数,事实上MFC是强制要求重载的,实际操作过程如下: void CMyTabCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){ //获取选项卡文字内容 TCHAR szTabText[

Android 标签控件

版本:1.0 日期:2014.7.24 版权:© 2014 kince 转载注明出处 在有的应用中可能需要设置一些标签来方便用去去查询某些信息,比如手机助手或者购物软件之类都会有一些标签.对于软件开发初期来说,直接使用TextView.Button实现是最为简单的一种方式.但是这种方法也有其局限性,比如不能控制换行.耦合性低等缺点.所以除了解决这些问题之外,最好能够封装一个类库出来,方便以后使用. 首先新建一个Tag类, import java.io.Serializable; public c

[Android]界面控件

1. 引用系统自带样式 字体大小 对于能够显示文字的控件(如TextView EditText RadioButton Button CheckBox Chronometer等等),你有时需要控制字体的大小.Android平台定义了三种字体大小. "?android:attr/textAppearanceLarge" "?android:attr/textAppearanceMedium" "?android:attr/textAppearanceSmal

Android界面编程——Android基本控件

 Android界面编程 Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户. 作为一个程序员如何才能开发出友好的图形界面呢.实际上Android提供了非常丰富UI(User Interface)控件,开发者只要掌握了这些控件的特性,按照一定的规律,就可以像堆积木一样开发出友好的图形界面. 本章内容将介绍常用控件的具体用法. 2.1  Android UI的基础知识 Android中所有的

[工具推荐]005.Axure RP Pro 7.0模拟C#TAB控件

有一次,主管安排我写一个项目的原型,但是项目中涉及到了Tab控件,在Axure中的控件中找了一番,没有找着Tab控件.那么我们只能换种法子来实现它了,我们用到了Dynamic Panel来模拟. 1.首先我们拖动Dynamic Panel到我们的页面中.如下 2.双击Dynamic panel,然后跟据你要创建的Tab页面填写 3.然后点击面板状态下面的第五个按钮,进行所有控件编辑 4.然后拉一个Rectangle和两个Button Shape到页面1上面 5.选中Button Shape右键-

Android常见控件初探

温故而知新.最近复习了一些android常用控件,接下来,根据android 官方API,总结一下它们的一些常见用法.(开发测试环境为Android4.4) 一.TextView 由官方的关系图可以看出,TextView继承View类,直接子类有Button,CheckedTextView等,间接子类有AutoCompleteTextView, CheckBox等. 下面列举一些TextView常见的xml属性: android:text TextView显示的文字 android:textCo