viewPager

来源:互联网 发布:linux stat 文件夹 编辑:程序博客网 时间:2024/06/08 02:01

ViewPager(视图分页)

1、在布局文件中添加<android.support.v4.view.ViewPager/>

<android.support.v4.view.ViewPager        android:id="@+id/pagerId"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        />


2、在activity中获得到ViewPager

//1.获得ViewPager对象ViewPager vp=(ViewPager)findViewById(R.id.pagerId);

3、获取item子项布局(这里可以使自己定义的)

<?xml version="1.0" encoding="utf-8"?><ImageView  xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/imgPagId"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_gravity="center"/>

4、获取获取adapter的数据源list?或者 array[] ?

5、构建adapter(),PagerAdapter或者是其子类,可以自定义

class InnerPagerAdapter extends PagerAdapter{@Overridepublic int getCount() {return 5;}/**判定arg1参数指定的对象是不是arg0指向的view对象是一样*/@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0==arg1;}//初始化一个item对象@Overridepublic Object instantiateItem(ViewGroup container, int position) {Log.i("TAG", "instantiateItem.position="+position);//1.item viewTextView tv=new TextView(MainActivity.this);tv.setTextSize(30);//2.item datatv.setText(String.valueOf(position));//3.set item data to item view//4.set item view to containercontainer.addView(tv);return tv;//构建的item}//删除指定的item@Overridepublic void destroyItem(ViewGroup container,     int position,    Object object) {Log.i("TAG", "destroyItem.position="+position);container.removeView((View)object);}}

6ViewPager.setAdapter(adapter);

//3.关联Adaptervp.setAdapter(adapter);//PagerAdapter

7、为ViewPager设置监听器

vp.setOnPageChangeListener(this);
/**滚动状态发生变化时执行此方法*/@Overridepublic void onPageScrollStateChanged(int position) {}/**页面发生滚动时执行此方法*/@Overridepublic void onPageScrolled(int position, float offset, int pxoffset) {}/**页面完全进入时执行此方法*/@Overridepublic void onPageSelected(int position) {if(position==4){btn.setVisibility(View.VISIBLE);}else{btn.setVisibility(View.GONE);}}



0 0