ViewPager的使用
2015-12-18 17:49
302 查看
ViewPager的使用
效果图
布局
<android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="wrap_content" android:overScrollMode="never" android:scrollbars="none" />
初始化及事件监听
// ViewPager ViewPager mViewPager = (ViewPager) view.findViewById(R.id.viewpager); // 添加页面变动的监听事件 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position) { case 0: // TODO 显示了第一页 break; case 1: // TODO 显示了第二页 break; } } @Override public void onPageScrollStateChanged(int state) { } });
setOnPageChangeListener比较常用,但是提示API已经过时,还可以用addOnPageChangeListener
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } });
填充ViewPager
这里填充两个页面,R.layout.viewpager1 和 R.layout.viewpager2 是ViewPager的两个页面的xml// 添加页面 ArrayList viewList = new ArrayList<View>();// 将要分页显示的View装入数组中 View viewpagerQuotationBtc = View.inflate(getActivity(), R.layout.viewpager1, null); View viewpagerQuotationLtc = View.inflate(getActivity(), R.layout.viewpager2, null); viewList.add(viewpagerQuotationBtc); viewList.add(viewpagerQuotationLtc); QuotationPageAdapter quotationDataAdapter = new QuotationPageAdapter(viewList); viewPager.setAdapter(quotationDataAdapter);
Adapter
package ……; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; /** * Created by kongqw on 2015/11/25. */ public class QuotationPageAdapter extends PagerAdapter { private ArrayList<View> mListViews; public QuotationPageAdapter(ArrayList<View> mListViews) { this.mListViews = mListViews; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(mListViews.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(mListViews.get(position), 0); return mListViews.get(position); } @Override public int getCount() { return mListViews.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } }
设置ViewPager显示第几页
// 显示第一页 mViewPager.setCurrentItem(0);
相关文章推荐
- 使用ViewPager实现高仿launcher左右拖动效果
- 灵活使用Android中ActionBar和ViewPager切换页面
- Android 使用 ViewPager循环广告位的实现
- 实现轮转广告带底部指示的自定义ViewPager控件
- 自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果
- Android基于ViewPager Fragment实现选项卡
- 使用ViewPager实现android软件使用向导功能实现步骤
- Android编程ViewPager回弹效果实例分析
- Android 使用ViewPager自动滚动循环轮播效果
- Android ViewPager相册横向移动的实现方法
- Android 使用viewpager实现无限循环(定时+手动)
- Android编程实现ListView头部ViewPager广告轮询图效果
- Android 利用ViewPager实现图片可以左右循环滑动效果附代码下载
- Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法
- 使用ViewPager+Fragment实现顶部导航栏
- viewpager的layout_width="wrap_content"无效问题
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- Fragment+viewpager+Fragment 嵌套 第二次进入该fragment不显示数据
- android自定义tabbar,并带badgeview消息提示
- ViewPager播放图片问题