详谈侧滑页面ViewPager的使用

来源:互联网 发布:ubuntu win10启动项 编辑:程序博客网 时间:2024/05/01 14:49

                 大家好,这讲给大家带来的是侧滑页面的使用,我们在使用刚下载的app,第一次打开app运用的时候,就会有侧滑页面的出现,它主要是介绍本款的app的功能,以及有关app的东西。当你第二次打开时,它就不会再出现了。viewPager功能实现就是这样,相信大家脑里也有清晰的画面,想象不到位,没关系。我下面截有图片,加深对viewPager印象。

看完这三幅图片,大家肯定心里觉得这是很难做的,其实不难,能正确使用ViewPager工具,分分钟搞定。

1.res/layout/activity_guide.xml布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

//viewPager是v4下的工具类,所有它的控件属性与其他大有不同

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

//把开始体验按钮隐藏,等需要显示在显示出来,这个控件使用了选择器,在下文我会详解

    <Button 
        android:id="@+id/guide_btn"
        android:visibility="invisible"
        android:layout_width="135dp"
        android:layout_height="45dp"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:layout_marginBottom="40dp"
        android:background="@drawable/guide_drawable_select"
        android:text="开始体验"
        android:onClick="enterSystem"
        android:textColor=“#ffffffff" />

</RelativeLayout>

2.GuideActivity.java

public class GuideActivity extends Activity {

 private ViewPager mViewPager;
 private List<ImageView> mPagerList;//定义List,类型是ImageView
 private Context context;
 private Button mGuideBtn;

 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

//去标题
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  setContentView(R.layout.activity_guide);

//初始化控件
  context = this;
  mViewPager = (ViewPager) findViewById(R.id.guide_vp);
  mGuideBtn = (Button) findViewById(R.id.guide_btn);
  

  //初始化集合List,类型是ImageView
  mPagerList = new ArrayList<ImageView>();

  //第一个页面图片
  ImageView pageImage1 = new ImageView(context);

//设置背景图片
  pageImage1.setBackgroundResource(R.drawable.guide_1);

//ImageView添加到集合List里
  mPagerList.add(pageImage1);

  //第二个页面图片
  ImageView pageImage2 = new ImageView(context);
  pageImage2.setBackgroundResource(R.drawable.guide_2);
  mPagerList.add(pageImage2);

  //第三个页面图片
  ImageView pageImage3 = new ImageView(context);
  pageImage3.setBackgroundResource(R.drawable.guide_3);
  mPagerList.add(pageImage3);

  //设置mViewPager页面适配器,好比listVIew的适配器,list.setAdapter()
  mViewPager.setAdapter(new PagerAdapter() {

   @Override
   public boolean isViewFromObject(View arg0, Object arg1) {
    // TODO Auto-generated method stub

//返回 视图等于对象
    return arg0 == arg1;
   }

   @Override
   public int getCount() {
    // TODO Auto-generated method stub

//集合的个数
    return mPagerList == null ? 0 : mPagerList.size();
   }

   //销毁方法
   public void destroyItem(ViewGroup container, int position,
     Object object) {

//删除的是一个容器,这里指的是ImageView
    container.removeView(mPagerList.get(position));
    //没有返回值,说明这里没有ViewPager了
   }

  //实例化方法,也就是添加在容器里添加视图
   public Object instantiateItem(ViewGroup container, int position) {

  //添加视图,也是Imageview
    container.addView(mPagerList.get(position));
    //返回操作页面
    return mPagerList.get(position);
   }

  });

 //viewPager监听交互,改变页面的监听
  mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

 public void onPageSelected(int position) {

//获取总页面索引号
    int page = mPagerList.size() - 1;
   //判断,当下标值等于总页面的索引号时
    if (page == position) {
    //显示按钮
     mGuideBtn.setVisibility(View.VISIBLE);

    } else {
   //按钮消失
     mGuideBtn.setVisibility(View.GONE);
    }

   }

   //页面滑动
   public void onPageScrolled(int arg0, float arg1, int arg2) {

   }

  //页面状态改变
   public void onPageScrollStateChanged(int arg0) {

   }
  });

 } 

//点击事件
 public void enterSystem(View v) {
  Intent intent = new Intent(GuideActivity.this, SplashActivity.class);
  startActivity(intent);
  finish();
 }

}

3.res/drawable/guide_drawable_select.xml选择器

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    //点击的时候显示的图片
    <item android:drawable="@drawable/ticket_btn_cancel_normal" android:state_pressed="true"></item>

    //正常的时候显示的图片
     <item android:drawable="@drawable/ticket_btn_cancel_pressed" ></item>
</selector>


好了,这讲就到了,viewPager的使用,大家以后开发经常会用到,留心学习。88


0 0
原创粉丝点击