一、ViewPager介绍
ViewPager是由google为我们提供的兼容android的软件包v4提供的。利用它可以做许多事情,比如我们平时常见的软件刚安装时的滑动面,淘宝的自动循环的界面、最简单的导航等。
它的使用与ListView相似需要一个适配器,只是它需要的是PagerAdapter,但是它又有不同之处,listview中传递的是对象,而ViewPager中传递的是View。
二、v4 jar包的导入
先找到jar包
D:\software\android\Sdk\Sdk\extras\android\m2repository\com\android\support
Ecplise:点击jar包,复制,点开ecplise中相应的project,找到lib文件夹,复制进去即可。
Android Studio:File ——projectconstructor——viewpager-dependence-点击“+”找到support v4即可。
三、简单使用例子
ViewPager的使用,也是先需要在布局中引入,但是在布局文件中引入时需要注意要写全包名,view是小写。
<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/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</android.support.v4.view.ViewPager>
</RelativeLayout>
PagerAdapter
适配器的创建需要重写它的两个方法destroyItem()<销毁>和 instantiateItem()<初始化>
package com.example.myviewpager;
import java.util.List;
import android.graphics.Picture;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
public class MyViewPagerAdapter extends PagerAdapter{
private List<View> views;
public MyViewPagerAdapter(List<View> views) {
super();
this.views = views;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView( views.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view=views.get(position);
container.addView(view);
if(position==2){
Button button=(Button) view.findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(),"点击成功", Toast.LENGTH_SHORT).show();
}
});
}
return view;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return views.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
}
MainActivity:
public class MainActivity extends Activity {
private ViewPager mviewpager;
private List<View> views;
private MyViewPagerAdapter madapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mviewpager=(ViewPager) findViewById(R.id.viewpager);
views=new ArrayList<View>();
View view1=getLayoutInflater().inflate(R.layout.viewpager_item1, null);
View view2=getLayoutInflater().inflate(R.layout.viewpager_item2, null);
View view3=getLayoutInflater().inflate(R.layout.viewpager_item3, null);
views.add(view1);
views.add(view2);
views.add(view3);
madapter=new MyViewPagerAdapter(views);
mviewpager.setAdapter(madapter);
}