原帖:http://www.cnblogs.com/trinea/archive/2012/11/23/2771273.html

本文主要介绍如何利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果。即google play首页、新浪微博消息(at、评论、私信、广播)页面的效果。ViewPager+Fragment组合为google推荐方式,比TabActivity+Activity的效率高的多。

这个效果相当好!

1、新建ViewPager的layout,内容如下

 
<?xml version="1.0" encoding="utf-8"?>                    

ViewPager用来管理layout并可以左右滑动显示各个页面数据,PagerTabStrip用来显示页面title,android:layout_gravity="top"表示title在顶部,可设置bottom等。

2、新建FragmentActivity页面
FragmentActivity页面含有ViewPager元素,可以用来显示Fragment,定义如下:

 
FragmentActivity页面public class ViewPagerDemo extends FragmentActivity {    /** 页面list **/    List fragmentList = new ArrayList();    /** 页面title list **/    List   titleList    = new ArrayList();    @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));    }    /**     * 定义适配器     *      * @author gxwu@lewatek.com 2012-11-15     */    class myPagerAdapter extends FragmentPagerAdapter {        private List fragmentList;        private List   titleList;        public myPagerAdapter(FragmentManager fm, List fragmentList, List 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表示具体的页面,见下面介绍。

3、新建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;    }}

简单效果如下:

 

更多相关文章

  1. wifi学习笔记
  2. Android(安卓)5.0输入系统分析之InputReader线程分析
  3. android 中的 ViewFlipper 的简单使用
  4. Android(安卓)RemoteCallbackList类
  5. Android培训班(68)dex文件打开流程
  6. android 事件传递机制
  7. android html 与webview属性从冲突
  8. android滑动事件监听
  9. Android中获取应用程序(包)的大小-----PackageManager的使用(二)

随机推荐

  1. RecyclerView实现横向滚动效果
  2. android 发送短信的两种方式
  3. Android应用开发——界面开发之常用组件
  4. 安卓面试中遇到的问题2017.2
  5. 自定义View android 像支付宝支付界面的p
  6. [收藏】:大话企业级Android应用开发实战
  7. Android(安卓)Application Task Activiti
  8. How to download Android(安卓)SDK files
  9. android studio 打release包报错:Lint fou
  10. Android(安卓)SDK 更新失败(google相关网