【声明】转载请注明出处,此文出自指尖飞落的博客:http://blog.csdn.net/huntersnail
——尊重作者,知识无价,交流无限!
前言:在实际开发过程中,有的时候需要对多个标题界面进行切换,那么,我们虽然可以用意图来跳转、或者addView/removeView那样来添加进行容器进行切换。but,我们有更好的一种实现方式,那就是google给我们提供的v4包里面的ViewPager可以实现我们的这种需要,不废话了,直接上代码。
1、需求:这是我们需要实现的效果图
代码如下:
2、MainActivity.java
package com.frxs.viewpagerdemo;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends Activity {
private ViewPager mPager;
private MyPagerAdapter mAdapter;
//选项卡
private PagerTabStrip strip;
private List<View> pagers;
//标题
private String[] titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
/**
* 初始化数据
*/
private void init() {
mPager=(ViewPager) findViewById(R.id.vp_viewpager);
pagers=new ArrayList<View>();
initPager();
mAdapter=new MyPagerAdapter();
mPager.setAdapter(mAdapter);
initStrip();
}
/**
* 设置PagerTabStrip的属性
*/
private void initStrip() {
strip=(PagerTabStrip) findViewById(R.id.pts_pager);
//删除pager和选项卡之间的分割线
strip.setDrawFullUnderline(false);
//修改选项卡的下划线的颜色
strip.setTabIndicatorColor(Color.RED);
}
/**
* 初始化选项卡
*/
private void initPager() {
//选项卡标题
titles=new String[]{"福彩","体彩","六合彩"};
//选项卡内容
TextView item=new TextView(this);
item.setText("福彩");
item.setBackgroundColor(Color.BLUE);
pagers.add(item);
item=new TextView(this);
item.setText("体彩");
item.setBackgroundColor(Color.GRAY);
pagers.add(item);
item=new TextView(this);
item.setText("六合彩");
item.setBackgroundColor(Color.LTGRAY);
pagers.add(item);
}
/**
* 适配器
* @author Administrator
*/
class MyPagerAdapter extends PagerAdapter{
/**
* 将选项卡添加进容器
*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
//拿到集合里的所有视图
View view=pagers.get(position);
//塞进这个ViewGroup容器里
container.addView(view);
return view;
}
/**
* 将选项卡从进容器中删除
*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view=pagers.get(position);
container.removeView(view);
}
@Override
public int getCount() {
return pagers.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
/**
* 设置选项卡标题
*/
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/vp_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.PagerTabStrip
android:id="@+id/pts_pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
</RelativeLayout>
O(∩_∩)O哈哈~欢迎各种吐槽、鄙视、指教、交流......
源码地址:点击打开链接
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆转载请注明出处☞指尖飞落的博客☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆