ViewPager的使用

ViewPager就想微信或者qq的顶部的导航栏一样,滑动可以改变到不同的View或者Fragment

使用方法:

在布局文件中定义标签:

android.support.v4.view.ViewPager为ViewPager控件,PagerTabStrip为控件的标题栏,像上图中的黄色部分

<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >

<android.support.v4.view.PagerTabStrip
android:id="@+id/tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
>
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>

新建一个类继承PagerAdapter,在此类中实现PagerAdapter的方法

import java.util.List;

import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

public class MyPagerAdapter extends PagerAdapter{

private List<View> dataList;     //要加载的View源,在activityzhong定义
private List<String> listStrings;  //标题栏源,在activity中定义

public MyPagerAdapter(List<View> dataList,List<String> listStrings){
this.dataList=dataList;
this.listStrings=listStrings;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return dataList.size();
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
container.addView(dataList.get(position));
return dataList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
container.removeView(dataList.get(position));
}

@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return listStrings.get(position);
}
}

主activity:

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

import android.R.color;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.view.View;

public class MainActivity extends Activity {

private ViewPager viewPager;
private PagerTabStrip tabStrip; //设置ViewPager的标题栏
private List<String> listStrings;

private List<View> dataList;

private View view1;//这个View自己在布局文件中定义
private View view2;
private View view3;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager) findViewById(R.id.viewPager);
tabStrip=(PagerTabStrip) findViewById(R.id.tab);

view1 =View.inflate(this, R.layout.view1, null);
view2 =View.inflate(this, R.layout.view2, null);
view3 =View.inflate(this, R.layout.view3, null);

dataList=new ArrayList<View>();
dataList.add(view1);
dataList.add(view2);
dataList.add(view3);

listStrings=new ArrayList<String>();
listStrings.add("第一个");
listStrings.add("第二个");
listStrings.add("第三个");

tabStrip.setBackgroundColor(Color.YELLOW);
tabStrip.setTextColor(Color.BLACK);
tabStrip.setDrawFullUnderline(false);
tabStrip.setTabIndicatorColor(Color.GREEN);
tabStrip.setVerticalFadingEdgeEnabled(false);

MyPagerAdapter adapter=new MyPagerAdapter(dataList,listStrings);
viewPager.setAdapter(adapter);
}
}

可能有些混乱,有些不懂的可以给我留言,谢谢

最新文章

  1. Javascript类型
  2. 怎样获取优酷站内视频的MP4格式地址,嵌入到手机页面播放
  3. IM客户端Socks 5代理协议应用
  4. Ubuntu 14.04 在桌面上双击运行shell 脚本文件
  5. Android Studio, gradle plugin is too old or set ANDROID_DAILY_OVERRIDE
  6. SQLite数据库与Contentprovider(1)
  7. ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map
  8. [BZOJ2173]整数的lqp拆分
  9. javascript自定义浏览器右键菜单
  10. java中Integer包装类的具体解说(java二进制操作,全部进制转换)
  11. Memcached源码分析之slabs.c
  12. asp.net -mvc框架复习(3)-控制器和动作方法的任务分析
  13. [POJ268] Prime Distance(素数筛)
  14. erlang调试方法
  15. 关闭R语言载入包时候的警告
  16. ls命令显示的total你知道代表着什么吗?
  17. zhuangxiu
  18. @Controller,@Service,@Repository,@Component详解
  19. 20155334 2016-2017-2 《Java程序设计》第四周学习总结
  20. ExtJS小技巧

热门文章

  1. [CentOS] 打造vim环境
  2. 下拉框分组显示optgroup
  3. C语言初学者代码中的常见错误与瑕疵(19)
  4. Android多线程通信之Handler
  5. android 项目学习随笔十五(ShareSDK开放平台)
  6. Linux内核配置机制(make menuconfig 、Kconfig、Makefile)讲解【转】
  7. Microsoft JET Database Engine (0x80004005)
  8. java技术用ssh从linux服务器下载数据
  9. (转)java线程安全问题之静态变量、实例变量、局部变量
  10. vi的使用规则