您的位置:首页 > 其它

Viewpage实现左右无限滑动

2015-06-03 09:32 225 查看
实现逻辑参考:http://www.cnblogs.com/xinye/archive/2013/06/09/3129140.html

代码:如下

public class MainActivity extends Activity implements
OnPageChangeListener {
private ViewPager viewpager;
private int view[] = { R.layout.a, R.layout.b, R.layout.c };
private List<View> data = new ArrayList<View>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
initViewPagerData();
}

private void initViewPagerData() {
data.add(0,
LayoutInflater.from(this).inflate(view[view.length - 1], null));
for (int i = 0; i < view.length; i++) {
data.add(i + 1, LayoutInflater.from(this).inflate(view[i], null));
}
data.add(view.length + 1,
LayoutInflater.from(this).inflate(view[0], null));

viewpager.setAdapter(new ViewPagerAdapter(data, this));
viewpager.setCurrentItem(1, false);
}

private void init() {
// 初始化界面
viewpager = (ViewPager) findViewById(R.id.viewpager);
// 添加事件
viewpager.setOnPageChangeListener(this);

}

@Override
public void onPageScrollStateChanged(int arg0) {

}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// 无限循环滑动
if (view.length > 1) {// 多于一个view才会循环跳转
if (arg0 == 0 && arg2 == 0) {
// 切换循环更加流畅,不会出现生硬的切换感觉
arg0 = view.length;
viewpager.setCurrentItem(arg0, false);
} else if (arg0 > view.length) {
viewpager.setCurrentItem(1, false);
}
}
}

@Override
public void onPageSelected(int arg0) {

}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: