An example of multi-page sliding switching effect using Viewpager in Android applications _android

Source: Internet
Author: User
Tags android sdk manager

1, add Android Support package
since the above classes are available in the Android support package, we add the package first.
In Eclipse->window->android SDK Manager, select the Extras->android Support Library in the list to install. After downloading in the Android-sdk\extras\android\support directory, here we choose the V4 version, into the V4 directory, copy android-support-v4.jar files to the Project Libs directory (if not new) can , compile-time ADT will automatically import it into the project.

2, the new Viewpager layout, the contents are as follows

<?xml version= "1.0" encoding= "Utf-8"?> <linearlayout xmlns:android=
"http://schemas.android.com/apk/" Res/android "
  android:layout_width=" match_parent "
  android:layout_height=" match_parent "
  android:o" rientation= "vertical" >
  
  <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.pagertabstrip  
      android:layout_width=" Wrap_content  
      " android:layout_height= "Wrap_content"  
      android:layout_gravity= "top"/>
  </ Android.support.v4.view.viewpager>
</LinearLayout>

Viewpager is used to manage layout and can slide around to display the data of each page, Pagertabstrip used to display the page title,android:layout_gravity= "top" to say title at the head, can be set bottom, etc.

3. New Fragmentactivity page
the fragmentactivity page contains viewpager elements that can be used to display fragment, as defined below:

public class Viewpagerdemo extends fragmentactivity {/** page List **/list<fragment> fragmentlist = new Arrayli
  St<fragment> ();

  /** page Title List **/list<string> titlelist = new arraylist<string> ();
    @Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);

    Setcontentview (R.layout.view_pager_demo);
    Viewpager VP = (viewpager) Findviewbyid (R.id.viewpager);
    Fragmentlist.add (New ViewPagerFragment1 ("Page 1"));
    Fragmentlist.add (New ViewPagerFragment1 ("Page 2"));
    Fragmentlist.add (New ViewPagerFragment1 ("Page 3"));
    Titlelist.add ("Title 1");
    Titlelist.add ("Title 2");
    Titlelist.add ("Title 3");
  Vp.setadapter (New Mypageradapter (Getsupportfragmentmanager (), Fragmentlist, titlelist)); /** * Definition Adapter/class Mypageradapter extends Fragmentpageradapter {private list<fragment> Fragment
    List;

    Private list<string> titlelist; Public Mypageradapter (FragmenTmanager FM, list<fragment> fragmentlist, list<string> titlelist) {super (FM);
      This.fragmentlist = fragmentlist;
    This.titlelist = titlelist; /** * Get each page * * * @Override public Fragment getitem (int arg0) {return (fragmentlist = null || Fragmentlist.size () = = 0)?
    Null:fragmentList.get (arg0); /** * Title of each page * * @Override public charsequence getpagetitle (int position) {return (titl Elist.size () > Position)?
    Titlelist.get (position): ""; /** * Total number of pages * * @Override public int GetCount () {return fragmentlist = null? 0:fragmen
    Tlist.size ();

 }
  }
}

The Mypageradapter is integrated from Ragmentpageradapter to provide a data source for Viewpager.

The OnCreate function obtains the Viewpager instance and sets the data source, Getsupportfragmentmanager represents the fragment manager. ViewPagerFragment1 represents the specific page, see below for a description.

4. New Fragment page
The Fragment page is the page that needs to be displayed, the new class integrates fragment, and the Oncreateview function can be rewritten. The Oncreateview function corresponds to the OnCreate function of the activity. As follows:

public class ViewPagerFragment1 extends Fragment {

  private String  text;
  Private TextView TV = null;

  Public ViewPagerFragment1 (String text) {
    super ();
    This.text = text;

  /**
   * Overwrite this function, first get View last return
  /@Override public
  view Oncreateview via Inflater inflate function ( Layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) {
    View v = inflater.inflate (r.layout.view _pager_fragment_demo1, container, false);
    TV = (TextView) V.findviewbyid (r.id.viewpagertext);
    Tv.settext (text);
    Return v.
  }
}

5. Sample Engineering Code:

Package Cn.trinea.android.demo;
Import java.util.ArrayList;

Import java.util.List;
Import Android.os.Bundle;
Import android.support.v4.app.Fragment;
Import Android.support.v4.app.FragmentManager;
Import Android.support.v4.app.FragmentPagerAdapter;

Import Android.support.v4.view.ViewPager;

  public class Viewpagerdemo extends basefragmentactivity {private static int total_count = 3; @Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate, R.layout.view_page

    R_demo);
    Viewpager VP = (viewpager) Findviewbyid (R.id.view_pager);
    list<fragment> fragmentlist = new arraylist<fragment> ();
    list<string> titlelist = new arraylist<string> ();
      for (int i = 0; i < Total_count i++) {viewpagerfragment viewPagerFragment1 = new Viewpagerfragment ();
      Bundle Bundle = new Bundle ();
      Bundle.putint ("Upimageid", 0);
      Bundle.putstring ("text", "Page" + i); Viewpagerfragment1.setarguments (bUndle);
      Titlelist.add ("title" + i);
    Fragmentlist.add (VIEWPAGERFRAGMENT1);

  } vp.setadapter (New Mypageradapter (Getsupportfragmentmanager (), Fragmentlist, titlelist));
    Class Mypageradapter extends Fragmentpageradapter {private list<fragment> fragmentlist;

    Private list<string> titlelist; Public Mypageradapter (Fragmentmanager FM, list<fragment> fragmentlist, list<string> titleList) {super (F
      m);
      This.fragmentlist = fragmentlist;
    This.titlelist = titlelist;  @Override public Fragment getitem (int arg0) {return (Fragmentlist = = NULL | | fragmentlist.size () = 0)?
    Null:fragmentList.get (arg0); @Override public charsequence getpagetitle (int position) {return (titlelist.size () > position)? titl
    Elist.get (position): "";
    @Override public int GetCount () {return fragmentlist = = null 0:fragmentlist.size ();

 }
  }
}

The simple effect is as follows:

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.