public class MainActivity extends Activity {
private ViewPager viewPager;
private int[] images={R.drawable.txt_theme12,R.drawable.txt_theme14,R.drawable.txt_theme30};
private List<ImageView> list;
private ImageView[] icons;//存储指示图片的数组
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewpager);
list=new ArrayList<ImageView>();
for(int i=0;i<images.length;i++){
ImageView imageView=new ImageView(this);
imageView.setImageResource(images[i]);
list.add(imageView);
}
viewPager.setAdapter(new MyPagerAdapter());
viewPager.setOffscreenPageLimit(2);//设置viewpager预加载的page的个数的限制
initicons();
/*
* 表示当前测viewpager中的page的状态发生改变时回调的接口
*/
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
/*
* 表示当一个新的page界面被选中时回调的方法
* 参数表示 当前选择的page在viewpager中的下标
*/
@Override
public void onPageSelected(int position) {
//通过循环将指示性的图片全部设置为未选中状态
for(int i=0;i<images.length;i++){
icons[i].setEnabled(true);
}
icons[position].setEnabled(false);//根据下标找到当前选中图片对应的imageview 设置为选中
}
/*
* 表示当viewpager中的page发生滚动时回调的方法
* 第一个参数表示 当前滚动的page的下标
* 第二个参数表示 当前page页滑动的偏移量 [0,1)
* 第三个参数表示 当前page页滑动的偏移量 像素值表示
*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// System.out.println("--------onPageScrolled------"+positionOffset);
// System.out.println("----onPageScrolled--"+positionOffsetPixels);
}
/*
* 表示当前viewpager中的page的状态改变的时候回调的方法
* 参数表示 当前page页的状态
* SCROLL_STATE_DRAGGING 正在滑动状态
* SCROLL_STATE_IDLE 停止滑动状态
* SCROLL_STATE_SETTLING 选中状态
*/
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
/**
* 初始化指示性图片的方法
*/
public void initicons(){
LinearLayout linearLayout=(LinearLayout) findViewById(R.id.linearLayout);
icons=new ImageView[images.length];//初始化指示性图片的存储数组
for(int i=0;i<images.length;i++){
icons[i]=(ImageView) linearLayout.getChildAt(i);//以此从LinearLayout中取出imageview 存放到icons数组中
icons[i].setEnabled(true);
icons[i].setTag(i);//给指示性图片添加下标指示
//指示性图片添加单击事件
icons[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 将viewpager中的page页设置为指定的下标
viewPager.setCurrentItem((Integer) v.getTag()); //单击那个指示图标 就将该指示图片下标对应的page展示
}
});
}
icons[0].setEnabled(false);//icons数组中的第一个imageview默认显示选中状态的图片
}
/**
* 继承pageradapter的适配器
*
*/
public class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
}
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pagerTile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
public class MainActivity extends Activity {
private ViewPager viewPager;
private PagerTitleStrip pagerTitleStrip;
private List<View> views;
private List<String> titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewpager);
pagerTitleStrip=(PagerTitleStrip) findViewById(R.id.pagerTile);
// viewpager中的page页面添加内容
views=new ArrayList<View>();
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page1, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page2, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page3, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page4, null));
titles=new ArrayList<String>();
titles.add("新闻");
titles.add("头条");
titles.add("娱乐");
titles.add("体育");
viewPager.setAdapter(new MyPagerAdapter());
}
public class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return views.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
//android.support.v4.view.PagerTitleStrip给page界面添加标题 给控件填充标题内容
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
}
public class MainActivity extends FragmentActivity { private ViewPager viewPager; private LinearLayout linearLayout; private TextView[] titles; private List<Fragment> fragments;//viewpager的数据源 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager=(ViewPager) findViewById(R.id.viewpager); linearLayout=(LinearLayout) findViewById(R.id.linearlayout); initTitles(); initViewPager(); } //针对viewpager测操作的方法 public void initViewPager(){ fragments=new ArrayList<Fragment>(); Bundle bundle=new Bundle(); // 头条 Fragment fragment1=new FragmentShow(); bundle.putInt("tabIndex",1); fragment1.setArguments(bundle); //新闻 Fragment fragment2=new FragmentShow(); bundle=new Bundle(); bundle.putInt("tabIndex", 2); fragment2.setArguments(bundle); //娱乐 Fragment fragment3=new FragmentShow(); bundle=new Bundle(); bundle.putInt("tabIndex",3); fragment3.setArguments(bundle); fragments.add(fragment1); fragments.add(fragment2); fragments.add(fragment3); viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager())); viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { for(int i=0;i<fragments.size();i++){ titles[i].setBackgroundColor(Color.WHITE); } titles[position].setBackgroundColor(Color.GREEN); } @Override public void onPageScrolled(int position, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int state) { } }); } /** * 如果viewpager中的每个page中显示的是fragment可以使用FragmentPagerAdapter适配数据 * */ public class MyFragmentPagerAdapter extends FragmentPagerAdapter{ public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } /* 表示根据指定的下标返回page中对应的fragment */ @Override public Fragment getItem(int position) { return fragments.get(position); } /*表示当前适配器中的条目数量 */ @Override public int getCount() { return fragments.size(); } } //初始化标题栏 导航 public void initTitles(){ titles=new TextView[3];//将导航的textview存放到textview类型的数组中 for(int i=0;i<3;i++){ titles[i]=(TextView) linearLayout.getChildAt(i); titles[i].setBackgroundColor(Color.WHITE);//将textview导航的背景默认设置为白色 titles[i].setTag(i); titles[i].setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { viewPager.setCurrentItem((Integer) v.getTag()); } }); } titles[0].setBackgroundColor(Color.GREEN);//默认选中的page的第一个 所以将textview的第一个导航设置绿色 选中状态 } }
ViewPager
public class MainActivity extends Activity {
private ViewPager viewPager;
private int[] images={R.drawable.txt_theme12,R.drawable.txt_theme14,R.drawable.txt_theme30};
private List<ImageView> list;
private ImageView[] icons;//存储指示图片的数组
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewpager);
list=new ArrayList<ImageView>();
for(int i=0;i<images.length;i++){
ImageView imageView=new ImageView(this);
imageView.setImageResource(images[i]);
list.add(imageView);
}
viewPager.setAdapter(new MyPagerAdapter());
viewPager.setOffscreenPageLimit(2);//设置viewpager预加载的page的个数的限制
initicons();
/*
* 表示当前测viewpager中的page的状态发生改变时回调的接口
*/
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
/*
* 表示当一个新的page界面被选中时回调的方法
* 参数表示 当前选择的page在viewpager中的下标
*/
@Override
public void onPageSelected(int position) {
//通过循环将指示性的图片全部设置为未选中状态
for(int i=0;i<images.length;i++){
icons[i].setEnabled(true);
}
icons[position].setEnabled(false);//根据下标找到当前选中图片对应的imageview 设置为选中
}
/*
* 表示当viewpager中的page发生滚动时回调的方法
* 第一个参数表示 当前滚动的page的下标
* 第二个参数表示 当前page页滑动的偏移量 [0,1)
* 第三个参数表示 当前page页滑动的偏移量 像素值表示
*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// System.out.println("--------onPageScrolled------"+positionOffset);
// System.out.println("----onPageScrolled--"+positionOffsetPixels);
}
/*
* 表示当前viewpager中的page的状态改变的时候回调的方法
* 参数表示 当前page页的状态
* SCROLL_STATE_DRAGGING 正在滑动状态
* SCROLL_STATE_IDLE 停止滑动状态
* SCROLL_STATE_SETTLING 选中状态
*/
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
/**
* 初始化指示性图片的方法
*/
public void initicons(){
LinearLayout linearLayout=(LinearLayout) findViewById(R.id.linearLayout);
icons=new ImageView[images.length];//初始化指示性图片的存储数组
for(int i=0;i<images.length;i++){
icons[i]=(ImageView) linearLayout.getChildAt(i);//以此从LinearLayout中取出imageview 存放到icons数组中
icons[i].setEnabled(true);
icons[i].setTag(i);//给指示性图片添加下标指示
//指示性图片添加单击事件
icons[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 将viewpager中的page页设置为指定的下标
viewPager.setCurrentItem((Integer) v.getTag()); //单击那个指示图标 就将该指示图片下标对应的page展示
}
});
}
icons[0].setEnabled(false);//icons数组中的第一个imageview默认显示选中状态的图片
}
/**
* 继承pageradapter的适配器
*
*/
public class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
}
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pagerTile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
public class MainActivity extends Activity {
private ViewPager viewPager;
private PagerTitleStrip pagerTitleStrip;
private List<View> views;
private List<String> titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewpager);
pagerTitleStrip=(PagerTitleStrip) findViewById(R.id.pagerTile);
// viewpager中的page页面添加内容
views=new ArrayList<View>();
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page1, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page2, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page3, null));
views.add(LayoutInflater.from(this).inflate(R.layout.activity_page4, null));
titles=new ArrayList<String>();
titles.add("新闻");
titles.add("头条");
titles.add("娱乐");
titles.add("体育");
viewPager.setAdapter(new MyPagerAdapter());
}
public class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return views.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
//android.support.v4.view.PagerTitleStrip给page界面添加标题 给控件填充标题内容
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
}
public class MainActivity extends FragmentActivity { private ViewPager viewPager; private LinearLayout linearLayout; private TextView[] titles; private List<Fragment> fragments;//viewpager的数据源 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager=(ViewPager) findViewById(R.id.viewpager); linearLayout=(LinearLayout) findViewById(R.id.linearlayout); initTitles(); initViewPager(); } //针对viewpager测操作的方法 public void initViewPager(){ fragments=new ArrayList<Fragment>(); Bundle bundle=new Bundle(); // 头条 Fragment fragment1=new FragmentShow(); bundle.putInt("tabIndex",1); fragment1.setArguments(bundle); //新闻 Fragment fragment2=new FragmentShow(); bundle=new Bundle(); bundle.putInt("tabIndex", 2); fragment2.setArguments(bundle); //娱乐 Fragment fragment3=new FragmentShow(); bundle=new Bundle(); bundle.putInt("tabIndex",3); fragment3.setArguments(bundle); fragments.add(fragment1); fragments.add(fragment2); fragments.add(fragment3); viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager())); viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { for(int i=0;i<fragments.size();i++){ titles[i].setBackgroundColor(Color.WHITE); } titles[position].setBackgroundColor(Color.GREEN); } @Override public void onPageScrolled(int position, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int state) { } }); } /** * 如果viewpager中的每个page中显示的是fragment可以使用FragmentPagerAdapter适配数据 * */ public class MyFragmentPagerAdapter extends FragmentPagerAdapter{ public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } /* 表示根据指定的下标返回page中对应的fragment */ @Override public Fragment getItem(int position) { return fragments.get(position); } /*表示当前适配器中的条目数量 */ @Override public int getCount() { return fragments.size(); } } //初始化标题栏 导航 public void initTitles(){ titles=new TextView[3];//将导航的textview存放到textview类型的数组中 for(int i=0;i<3;i++){ titles[i]=(TextView) linearLayout.getChildAt(i); titles[i].setBackgroundColor(Color.WHITE);//将textview导航的背景默认设置为白色 titles[i].setTag(i); titles[i].setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { viewPager.setCurrentItem((Integer) v.getTag()); } }); } titles[0].setBackgroundColor(Color.GREEN);//默认选中的page的第一个 所以将textview的第一个导航设置绿色 选中状态 } }