当然如果上面写的内容你全部敲完了也就是能实现滑动,那天跟着跑的线,样式什么的都没有,下面你需要继续敲,这里是通过改变主题来设置的
这里主要就是对背景的设置,对背景的设置,是通过选择器实现的
这样就能实现你想要的滑动了,主要要改变配置文件中的主题(application中的主题作用于整个app,不是只针对于某个acticity)
注:代码是通过夏神代码改编,开始已附上地址
代码下载地址:http://download.csdn.net/detail/elinavampire/8171355
...................................................................................简单看一下源代码...............................................................................................................
首先看一下TabPageIndicator,继承自HorizontalScrollView,也就是说tab是可以实现横向滑屏
public class TabPageIndicator extends HorizontalScrollView implements PageIndicator
继续看里面的代码
private final OnClickListener mTabClickListener = new OnClickListener() {
public void onClick(View view) {
TabView tabView = (TabView)view;
final int oldSelected = mViewPager.getCurrentItem();
final int newSelected = tabView.getIndex();
mViewPager.setCurrentItem(newSelected);
if (oldSelected == newSelected && mTabReselectedListener != null) {
mTabReselectedListener.onTabReselected(newSelected);
}
}
};
也就是说它本身就实现了点击功能,它不仅仅是实现滑动,其余的就跟实现自定义控件的内容有些相似了
我们使用的方法中还有setViewPager(viewPager)和setOnPageChangeListener()方法,就简单看一下这部分代码
void setViewPager(ViewPager view);和 void setOnPageChangeListener(ViewPager.OnPageChangeListener listener);是接口PageIndicator的方法,TabPageIndicator在自己的类里面实现了接口里面的方法
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
final PagerAdapter adapter = view.getAdapter();
if (adapter == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
view.setOnPageChangeListener(this);
notifyDataSetChanged();
}这个方法是为了Bind the indicator to a ViewPager.
@Override
public void setOnPageChangeListener(OnPageChangeListener listener) {
mListener = listener;
}这个主要就是使用viewPager的监听事件了,其实TabPageIndicator就是一个自定义控件
ok,先到这