viewpager 左右滑动
//adapter
package com.wqdl.chr.ui.controller;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
public class AdapterViewpager extends PagerAdapter{
List<View> viewLists;
public AdapterViewpager(List<View> lists) {
viewLists = lists;
}
@Override
public int getCount() { // 获得size
// TODO Auto-generated method stub
return viewLists.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public void destroyItem(View view, int position, Object object) // 销毁Item
{
((ViewPager) view).removeView(viewLists.get(position));
}
@Override
public Object instantiateItem(View view, int position) // 实例化Item
{
((ViewPager) view).addView(viewLists.get(position), 0);
return viewLists.get(position);
}
}
//activity 中使用
List<View> listviews = new ArrayList<View>();
View v1 = new View(this);
View v2 = new View(this);
View v3 = new View(this);
View v4=getActivity().getLayoutInflater().inflate(R.layout.layout2, null);
View v5=getActivity().getLayoutInflater().inflate(R.layout.layout1r, null);
listviews.add(v1);
listviews.add(v2);
listviews.add(v3);
listviews.add(v4);
listviews.add(v5);
ViewPager vp = (ViewPager) view.findViewById(R.id.vp_mypersionnel);
AdapterViewpager adapter = new AdapterViewpager(this,listviews);
vp.setAdapter(adapter);
//监听viewpager的变化
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
switch (arg0) {
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {}
@Override
public void onPageScrollStateChanged(int arg0) {}
});
//自定义viewpager 设置是否支持左右滑动
package com.wqdl.chr.ui.view;
import java.lang.reflect.Field;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Interpolator;
import android.widget.Scroller;
public class Viewpager extends ViewPager{
private boolean isScroll = false; //设置是否可滑动
public Viewpager(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init();
}
public Viewpager(Context context) {
super(context);
// TODO Auto-generated constructor stub
init();
}
private void init(){
try {
Field field = ViewPager.class.getDeclaredField("mScroller");
field.setAccessible(true);
FixedSpeedScroller scroller = new FixedSpeedScroller(this.getContext(),
new AccelerateInterpolator());
field.set(this, scroller);
scroller.setmDuration(300);
} catch (Exception e) {
}
}
// 禁止左右滑动
@Override
public boolean onTouchEvent(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
public void setIsScroll(boolean isScroll){
this.isScroll = isScroll;
}
public class FixedSpeedScroller extends Scroller {
private int mDuration = 1500;
public FixedSpeedScroller(Context context) {
super(context);
}
public FixedSpeedScroller(Context context, Interpolator interpolator) {
super(context, interpolator);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
// Ignore received duration, use fixed one instead
super.startScroll(startX, startY, dx, dy, mDuration);
}
@Override
public void startScroll(int startX, int startY, int dx, int dy) {
// Ignore received duration, use fixed one instead
super.startScroll(startX, startY, dx, dy, mDuration);
}
public void setmDuration(int time) {
mDuration = time;
}
public int getmDuration() {
return mDuration;
}
}
}
浙公网安备 33010602011771号