Android viewPager实现翻动
1.ViewFlipper控件虽然也可以实现翻页功能,但是如果想要实现像UC浏览器,自带图库的翻动中还可以看到前一页的一半,后一页的一半这样的效果就要用到这个ViewPager啦。
他是android官方support包里面的。
2.添加这个包,你可以手动build path里面添加。也可以用Eclipse控件添加,首先,右键点击项目-》Android tool-》add compatibility library联网的状态下就可以自动加入的了。
主要是这个包:Android-surpport-v4.jar
3.ViewPager的用法。1.在你的XML布局里面想其他控件一样设定好属性,不过控件名就要用全名了:
<android.support.v4.view.ViewPager
android:id="@+id/myviewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
这样以后呢,就要再写一个ViewPager的专用Adapter,要继承PagerAdapter:
这里我给出个参考吧:
package com.myTest;
import java.util.ArrayList;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
public class MyViewPageAdapter extends PagerAdapter{
private ArrayList<View> views=new ArrayList<View> ();
public MyViewPageAdapter(ArrayList<View> views){
this.views=views;
}
@Override
public void destroyItem(View container, int position, Object object) {
// TODO Auto-generated method stub
((ViewPager)container).removeView(views.get(position));
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return views.size();
}
@Override
public Object instantiateItem(View arg0, int arg1){
((ViewPager)arg0).addView(views.get(arg1),0);
return views.get(arg1);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==(arg1);
}
}
这样之后,把你需要展示出来的每一个页面也就是每一个View放到一个ArrayList里面保存起来。传过去给Adapter。
最后的话,就是把ViewPager实例化,也就是findViewById()了。接着就调用ViewPager的setAdapter就OK了
这里是我的运行效果:
ViewPager的onPageChangeListener里面的一些方法参数:
onPageSelected(int arg0){
}
arg0是表示你当前选中的页面,这事件是在你页面跳转完毕的时候调用的。
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
} arg0 ==1的时候表示正在滑动,arg0==2的时候表示滑动完毕了,arg0==0的时候表示什么都没做,就是停在那。
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}表示在前一个页面滑动到后一个页面的时候,在前一个页面滑动前调用的方法。

浙公网安备 33010602011771号