丿你猜我是谁

导航

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;
}
}

}

 

posted on 2016-06-14 22:42  丿你猜我是谁  阅读(82)  评论(0)    收藏  举报