
1、添加androID support包
因为上面的几个类都是在androID support包中才提供,我们先添加包。
在Eclipse->Window->AndroID SDK Manager,选择列表中Extras->AndroID Support library进行安装。下载完后在androID-sdk\extras\androID\support目录下,这里我们选择v4版本,进入v4目录,拷贝其中的androID-support-v4.jar文件到工程的libs目录(若没有新建)下即可,编译时ADT会自动将其导入项目中。
2、新建VIEwPager的layout,内容如下
<?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:orIEntation="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用来管理layout并可以左右滑动显示各个页面数据,PagerTabStrip用来显示页面Title,androID:layout_gravity="top"表示Title在顶部,可设置bottom等。
3、新建FragmentActivity页面
FragmentActivity页面含有VIEwPager元素,可以用来显示Fragment,定义如下:
public class VIEwPagerDemo extends FragmentActivity { /** 页面List **/ List<Fragment> fragmentList = new ArrayList<Fragment>(); /** 页面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("页面1")); fragmentList.add(new VIEwPagerFragment1("页面2")); fragmentList.add(new VIEwPagerFragment1("页面3")); TitleList.add("Title 1 "); TitleList.add("Title 2 "); TitleList.add("Title 3 "); 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(fm); this.fragmentList = fragmentList; this.TitleList = TitleList; } /** * 得到每个页面 */ @OverrIDe public Fragment getItem(int arg0) { return (fragmentList == null || fragmentList.size() == 0) ? null : fragmentList.get(arg0); } /** * 每个页面的Title */ @OverrIDe public CharSequence getPageTitle(int position) { return (TitleList.size() > position) ? TitleList.get(position) : ""; } /** * 页面的总个数 */ @OverrIDe public int getCount() { return fragmentList == null ? 0 : fragmentList.size(); } }}其中的myPagerAdapter集成自ragmentPagerAdapter,为VIEwPager提供数据源。
onCreate函数得到VIEwPager实例并设置数据源,getSupportFragmentManager表示得到Fragment管理器。VIEwPagerFragment1表示具体的页面,见下面介绍。
4、新建Fragment页面
Fragment页面即为左右滑动需要显示的页面,新建类集成Fragment,并重写onCreateVIEw函数即可。onCreateVIEw函数相当于Activity的onCreate函数。如下:
public class VIEwPagerFragment1 extends Fragment { private String text; private TextVIEw tv = null; public VIEwPagerFragment1(String text){ super(); this.text = text; } /** * 覆盖此函数,先通过inflater inflate函数得到vIEw最后返回 */ @OverrIDe public VIEw onCreateVIEw(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、示例工程代码:
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_pager_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(),TitleList)); } class myPagerAdapter extends FragmentPagerAdapter { private List<Fragment> fragmentList; private List<String> TitleList; public myPagerAdapter(FragmentManager fm,List<String> TitleList) { super(fm); 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) ? TitleList.get(position) : ""; } @OverrIDe public int getCount() { return fragmentList == null ? 0 : fragmentList.size(); } }}简单效果如下:
以上是内存溢出为你收集整理的Android应用中利用ViewPager实现多页面滑动切换效果示例全部内容,希望文章能够帮你解决Android应用中利用ViewPager实现多页面滑动切换效果示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)