Viewpager可以使视图左右滑动 Viewpager在.xml声明的时候,需要加上前缀android.support.v4.view. 这个是谷歌公司为了让低版本的android系统也能使用viewpager而添加的库
加载显示的页卡
  • 将Layout布局转换为View对象LayoutInflaterlf=getLayoutInflater().from(this);
  • View.inflate(context,resource,root);
配置Adapter
  • pagerAdater数据源:List<View>
  • FragmentpagerAdater数据源:Lst<Fragment>
  • FragmentStatepagerAdater数据源 :List<Fragment>

PagerAdater:该适配器通常要自定义一个子类,然后让子类去继承PagerAdapter 再实现其中的以下基本方法:
  • //判断view是否来自于对象
  • public boolean isViewFromObject(View arg0, Object arg1)
  • //返回页卡的数量
  • public int getCount()
  • //实例化一个页卡
  • public Object instantiateItem(ViewGroup container, int position)
  • //其中在实例化中,用container.addView(listview.get(position));即可实例化
  • //销毁一个页卡
  • public void destroyItem(ViewGroup container, int position, Object object)
  • //其中在销毁中,用container.removeView(listview.get(position));方法即可销毁

example: ---------------------------------------------------------------------------------------------------------------------\ /* *首先先建立几个布局文件,再用View.inflate将布局文件传换成View对象 *将转换成的View对象放入List<View>中通过对象的.add方法 *要创建一个继承PagerAdapter的子类,一般子类的构造器的参数为数据源(就像上面所做的一样) *之后在main函数中将数PagerAdapter声明出来 *然后让viewpager加载适配器 */ //MypagerAdapter.java package com.example.viewpagertest;
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>viewlist;
public MyPagerAdapter(List<View> listview) {
// TODO Auto-generated constructor stub
this.viewlist=listview;
}
//返回页卡的数量
@Override
public int getCount() {
// TODO Auto-generated method stub
return viewlist.size();
}

//判断view是否来自于对象
@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(viewlist.get(position));
return viewlist.get(position);
}
//销毁一个页卡
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
container.removeView(viewlist.get(position));
}
}
//MainActivity.java部分代码 private List<View> viewList;
private ViewPager viewpager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewpager = (ViewPager) findViewById(R.id.pager);
viewList = new ArrayList<View>();
/*
*通过View对象作为PagerAdapter 的适配源
*/
View view1=View.inflate(this, R.layout.view1, null);
View view2=View.inflate(this, R.layout.view2, null);
View view3=View.inflate(this, R.layout.view3, null);
View view4=View.inflate(this, R.layout.view4, null);
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
viewList.add(view4);
//创建pagerAdapter
MyPagerAdapter pageradapter =new MyPagerAdapter(viewList);

//让Viewpager 加载适配器
viewpager.setAdapter(pageradapter);
} -----------------------------------------------------------------------------------------------------
给Viewpager添加标题 在MainActivity中 private PagerTabStrip tab;
private List<String> titlelist; //为PagerTabstrip设置一些属性
tab = (PagerTabStrip) findViewById(R.id.tab);
tab.setBackgroundColor(Color.BLUE);
tab.setTextColor(Color.YELLOW);
tab.setDrawFullUnderline(false);
tab.setTabIndicatorColor(Color.GREEN); 在MypagerAdapter中 private List<String>titlelist; //构造器 public MyPagerAdapter(List<View> listview,List<String> titlelist) {
// TODO Auto-generated constructor stub
this.viewlist=listview;
this.titlelist=titlelist;
} //返回标题 public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titlelist.get(position);
} 在ViewPager中添加PagerTabStrip时前面也需要添加android.support.v4.view PagerTitleStrip和PagerTabStrip用法一样






更多相关文章

  1. ListView的OnItemClickListener事件被其内部Button点击事件屏蔽
  2. Android(安卓)Notification详解
  3. (转载)Android(安卓)之最新最全的Intent传递数据方法
  4. Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
  5. Android图片放大缩小实现方式(一)
  6. 总结 使用PHP作为中间介来实现android链接远程数据库。
  7. ObjectHttp使用介绍篇 —— 基础使用
  8. Android(安卓)编程下图片的内存优化
  9. Android(安卓)Jetpack(二)ViewModel 组件原理剖析

随机推荐

  1. 安卓绝对布局
  2. LAMP分离架构部署wordpress和LogAnalyzer
  3. 安卓高级组件
  4. 安卓自定义对话框的使用案例
  5. 安卓ui对话框
  6. 由浅入深玩转华为WLAN—28 高可用性系列(4
  7. 安卓常用组件
  8. ui组件
  9. 安卓布局文件
  10. 静态单页|项目数据|无刷新分页|编辑与删