首先说下ViewPager吧
ViewPager的作用就是实现界面左右滑动,要使用这个类,必须导入谷歌提供的第三方android-support-v4.jar包。具体用法和listView差不多,都需要一个适配器,ViewPager需要的是PagerAdapter,它里面有四个方法
@Override
public int getCount() {
return list.size(); //viewpager里共有多少项
}
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView((View)object); //回收之前的itemView
}
public Object instantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(list.get(position)); //初始化itemView
return list.get(position);
}
这个方法不知道什么含义,如果哪位大神知道,麻烦说下
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}
这里我就说下我写的一个例子
首先新建一个类继承activity
package com.fei.viewpager;
import java.util.ArrayList;
import java.util.List;
import com.fei.viewpager.R;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
public class ViewPagerActivity extends Activity {
ViewPager mViewPager;
private MyViewPagerAdapter adapter;
private List<View> list;
private LayoutInflater inflater;
TextView text;
String []name={"这这这这这","thisthisthis","isisisisis","aaaaaaaa"}; //每个页面上要显示的内容
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewpager);
mViewPager = (ViewPager) findViewById(R.id.viewpager);
list = new ArrayList<View>();
inflater = LayoutInflater.from(this);
for (int i = 0; i < name.length; i++) {
View view = inflater.inflate(R.layout.pager_item, null);
text = (TextView) view.findViewById(R.id.text);
text.setText(name[i]);
list.add(view);
}
adapter = new MyViewPagerAdapter(list, this);
mViewPager.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.view_pager, menu);
return true;
}
}
activity 的布局文件 activity_viewpager.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
viewpager里面的每一项的布局pager_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/text"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
我自己写的adapter,继承PagerAdapter,
package com.fei.viewpager;
import java.util.List;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
public class MyViewPagerAdapter extends PagerAdapter {
private List<View> list;
private Context context;
public MyViewPagerAdapter(List<View> list, Context context) {
super();
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size(); //共有多少项
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView((View)object); //回收之前的itemView
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(list.get(position)); //初始化itemView
return list.get(position);
}
}
这样就能实现界面左右滑动了,看下运行结果
这个是很简单的例子,大家有什么疑问可以留言啊