viewpager的学习使用

来源:互联网 发布::java classpath 编辑:程序博客网 时间:2024/05/17 08:18

viewpager使用很简单,先在layout中加入:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:text="title"        android:id="@+id/title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center" />     <android.support.v4.view.ViewPager        android:id="@+id/viewpager"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center" >            </android.support.v4.view.ViewPager> </LinearLayout>
在代码里引用viewpager并为viewpager绑定adapter:
        mViewPager = (ViewPager)findViewById(R.id.viewpager);
        mViewPager.setAdapter(mPagerAdapter);
adapter就是返回每个page的view

 PagerAdapter mPagerAdapter = new PagerAdapter() {                         @Override            public boolean isViewFromObject(View arg0, Object arg1) {                return arg0 == arg1;            }                         @Override            public int getCount() {                return views.size();            }             @Override            public void destroyItem(View container, int position, Object object) {                ((ViewPager)container).removeView(views.get(position));            }             @Override            public CharSequence getPageTitle(int position) {                return titles.get(position);            }             @Override            public Object instantiateItem(View container, int position) {                ((ViewPager)container).addView(views.get(position));                return views.get(position);            }        };



viewpager还可以设置listner,一般不实现联动就不需要了:比如这里,viewpager切换了,我需要textview的title跟着一起变,就可以在onPageSelected中设置

  mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener(){@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stub}        });
onPageScrollStateChanged在开始切换滑动和结束是被调用,onPageScrolled在过程中被调用,onPageSelected在某页被选中后调用。比如手指按着某页滑动然后松手,调用流程会是:onPageScrollStateChanged,onPageScrolled,onPageSelected,onPageScrolled,onPageScrollStateChanged

0 0
原创粉丝点击