您的位置:首页 > 其它

ViewPager导航页面,开源框架ultraviewpager的使用

2017-08-08 15:48 567 查看
ViewPager导航页面可以自己定义adapeter,这里使用一种开源框架:ultraviewpager1.首先在build.gradle中添加:
compile 'com.alibaba.android:ultraviewpager:1.0.4@aar'
2.在使用的不居中添加代码:
<com.tmall.ultraviewpager.UltraViewPager
android:id="@+id/ultra_viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@android:color/darker_gray" />
3.Activity中核心代码:
/*viewpager开源框架的使用*/
UltraViewPager ultraViewPager = (UltraViewPager) v.findViewById(R.id.ultra_viewpager);
ultraViewPager.setScrollMode(UltraViewPager.ScrollMode.HORIZONTAL);
//UltraPagerAdapter 绑定子view到UltraViewPager
PagerAdapter adapter = new UltraPagerAdapter(false);
ultraViewPager.setAdapter(adapter);
//内置indicator初始化
ultraViewPager.initIndicator();
//设置indicator样式
ultraViewPager.getIndicator()
.setOrientation(UltraViewPager.Orientation.HORIZONTAL)
.setFocusColor(Color.GREEN)
.setNormalColor(Color.WHITE)
.setRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources().getDisplayMetrics()));
//设置indicator对齐方式
ultraViewPager.getIndicator().setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
//构造indicator,绑定到UltraViewPager
ultraViewPager.getIndicator().build();
//设定页面循环播放
ultraViewPager.setInfiniteLoop(true);
//设定页面自动切换  间隔2秒
ultraViewPager.setAutoScroll(2000);
//UltraPagerAdapter//
public class UltraPagerAdapter extends PagerAdapter {private boolean isMultiScr;public UltraPagerAdapter(boolean isMultiScr) {this.isMultiScr = isMultiScr;}@Overridepublic int getCount() {return 4;}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {//布局处理代码}container.addView(linearLayout);//        linearLayout.getLayoutParams().width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 180, container.getContext().getResources().getDisplayMetrics());//        linearLayout.getLayoutParams().height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 400, container.getContext().getResources().getDisplayMetrics());return linearLayout;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {LinearLayout view = (LinearLayout) object;container.removeView(view);}

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