zoukankan      html  css  js  c++  java
  • ViewPager的简单使用说明

    ViewPager的简单使用说明

    2013-12-14 00:55 by ...平..淡..., 7 阅读, 0 评论, 收藏编辑

    前提:工程中使用ViewPager,需要导入google提供的jar包(android-support-v4.jar)

    要学习ViewPager的使用,建议直接看官方文档 Creating Swipe Views with Tabs

    接下来主要对使用进行下总结,例子是官网上的。

    ViewPager可以理解成一个布局(layout)部件,如在xml中加载

    复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.view.ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    复制代码

    每一个子View作为一个独立的页面,加载在ViewPager上。不过要使子View能作为独立页面插入到ViewPager上,需要实现一个PagerAdapter。

    在PagerAdapter类或其子类中设计tab的标题(getPageTitle方法中实现)、tab的数量(在getCount方法中实现)、tab页面的显示内容(即fragment对象,在getItem方法中实现,该方法返回一个fragment对象)。

    jar包中已经实现了两种:

    1.FragmentPagerAdapter

    用于tab较少、较固定的滑动。效果如图,3个tab:

    下面是FragmentPagerAdapter的子类的实现代码

    复制代码
     1     public static class AppSectionsPagerAdapter extends FragmentPagerAdapter {
     2 
     3         public AppSectionsPagerAdapter(FragmentManager fm) {
     4             super(fm);
     5         }
     6 
     7         @Override
     8         public Fragment getItem(int i) {
     9             switch (i) {
    10                 case 0:
    11                     // The first section of the app is the most interesting -- it offers
    12                     // a launchpad into the other demonstrations in this example application.
    13                     return new LaunchpadSectionFragment();
    14 
    15                 default:
    16                     // The other sections of the app are dummy placeholders.
    17                     Fragment fragment = new DummySectionFragment();
    18                     Bundle args = new Bundle();
    19                     args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, i + 1);
    20                     fragment.setArguments(args);
    21                     return fragment;
    22             }
    23         }
    24 
    25         @Override
    26         public int getCount() {
    27             return 3;
    28         }
    29 
    30         @Override
    31         public CharSequence getPageTitle(int position) {
    32             return "Section " + (position + 1);
    33         }
    34     }
    复制代码

    在代码中,设置了tab的标题、tab的数量及每个tab显示的内容。具体fragment的实现就不贴出了,参考官网。

    2.FragmentStatePagerAdapter

    用于tab数量不确定,并且当用户切换到其他界面时,销毁之前的界面,达到减少内存使用。效果如图,tab是动态可移动的:

    下面是FragmentStatePagerAdapter的子类的实现代码

     FragmentStatePagerAdapter的子类实现

    在代码中,同样设置了tab的标题、tab的数量及每个tab显示的内容。

    总结步骤

    1.设计布局文件,加载ViewPager,必须包含包名:

    android.support.v4.view.ViewPager

    2.为ViewPager对象设计PagerAdapter对象。该对象需要实现tab的标题内容、tab的数量及每个页面显示的fragment。

    3.实现所需的fragment。所实现的fragment类一般是在PagerAdapter类或其子类的getItem方法中使用。在getItem方法中会创建fragment类的对象,返回给ViewPager来显示。getItem方法有一个参数(int position),开发时,可根据该值来确定哪个位置对应创建哪个fragment对象。

    这样就简单地实现了ViewPager的使用了。

    continue my dream...
  • 相关阅读:
    LINQ to XML 操作XML文档
    C#2008与.NET 3.5 高级程序设计读书笔记(3)C#核心编程结构I
    阐述集合类的接口(IEnumerable,IEnumerator,ICollection,IList,IDictionary)
    山塞一个PetShop(Task001)——基本的数据库连接
    山寨一个PetShop(Task002)——数据类库Model
    自定义控件(Task01)——可以设置属性的控件
    ASP.NET连接SQL、Access、Excel数据库(三)——工厂模式
    ASP.NET连接SQL、Access、Excel数据库(一)——什么是ADO.NET
    ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
    ASP.NET连接SQL、Access、Excel数据库(二)——连接实例
  • 原文地址:https://www.cnblogs.com/wlh652475101/p/3479760.html
Copyright © 2011-2022 走看看