viewpager+fragment实现滑动页面

1、适配器

package com.example.adapter;

import java.util.List;

import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.util.Log;
import android.view.ViewGroup;

import com.example.bean.Will;
import com.fragment.WillFragment;

/**
 * @author JL
 * FragmentPagerAdapter该类内的每一个生成的 Fragment 都将保存在内存之中
 * FragmentStatePagerAdapter的实现将只保留当前页面,当页面离开视线后,就会被消除,释放其资源;
 * 而在页面需要显示时,生成新的页面(就像 ListView的实现一样)。这么实现的好处就是当拥有大量的页面时,不必在内存中占用大量的内存。
 */
public class WillPagerAdapter extends FragmentStatePagerAdapter {

    private List<Will> mList;
public List<Will> getmList() {
        return mList;
    }

    public void setmList(List<Will> mList) {
        this.mList = mList;
    }

    public WillPagerAdapter(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
    }

    public WillPagerAdapter(FragmentManager fm, List<Will> list) {
        this(fm);
        // TODO Auto-generated constructor stub
        mList = list;
    }

    @Override
    public Fragment getItem(int position) {
        // TODO Auto-generated method stub
        WillFragment fragment = WillFragment.newInstance(mList.get(position));
        return fragment;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        // TODO Auto-generated method stub
        Log.i("instantiateItem", "position=" + position);
        // 得到缓存的fragment
        WillFragment fragment = (WillFragment) super.instantiateItem(container,
                position);
        return fragment;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return mList.size();
    }

    public IntentListenr getIntentListenr() {
        return intentListenr;
    }
}

2、WillFragment

import android.support.v4.app.Fragment;
public class WillFragment extends Fragment implements OnClickListener {

    private Will mWill;private TextView mTextName;public static WillFragment newInstance(Will will) {
        WillFragment fragment = new WillFragment();
        Bundle bundle = new Bundle();
        bundle.putSerializable("will", will);
        fragment.setArguments(bundle);
        return fragment;
    }

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

        Bundle args = getArguments();
        if (args != null) {
            mWill = (Will) args.get("will");
        }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        Log.i("WILLACTIVITY", "requestCode=" + requestCode + "resultCode="
                + resultCode);

        switch (resultCode) { // resultCode为回传的标记,我在B中回传的是RESULT_OK

        case 10:break;
        default:
            break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}

WillActivity

private WillPagerAdapter mAdapter;
....
mViewPager = (ViewPager) findViewById(R.id.will_activity_pager);
mAdapter = new WillPagerAdapter(getSupportFragmentManager(), mWills);
mViewPager.setAdapter(mAdapter);
Log.i("WillActivity", "" + position);
mViewPager.setCurrentItem(position);

Done!

时间: 2024-11-08 06:00:28

viewpager+fragment实现滑动页面的相关文章

Android之实现ViewPager+Fragment左右滑动

近期看新闻发现新闻的页面是能够左右滑动的.于是自己就好奇起来了,之前做过ViewPager展示图片,在想怎么载入页面呢?研究了一下.发现就是加入了Fragment,废话不多说,揭秘奥秘的时候到了. 使用过ViewPager小伙伴们都知道,Viewpager载入数据.须要数据源,这里我们定义4个Fragment. 为了方便其它同事使用,我给这4个Fragment加入了一个基类.详细代码例如以下: public abstract class BaseFragment extends Fragment

ViewPager + Fragment实现滑动标签页

ViewPager 结合Fragment实现一个Activity里包含多个可滑动的标签页,每个标签页可以有独立的布局及响应. activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:

Android Studio 使用ViewPager + Fragment实现滑动菜单Tab效果 --简易版

描述: 之前有做过一个记账本APP,拿来练手的,做的很简单,是用Eclipse开发的: 最近想把这个APP重新完善一下,添加了一些新的功能,并选用Android Studio来开发: APP已经完善了一部分,现在就想把已经做好的功能整理一下,记录下来. 效果图: 可以手动滑动菜单 也可以通过点击头部菜单进行切换           具体实现的代码: 前台代码(activity_main.xml): 1 <?xml version="1.0" encoding="utf-

ViewPager+Fragment实现滑动显示,且Fragment里面又放Fragment+viewPager

思路:新建一个Activity,且这个Activity要继承FragementActivity,在Activity的布局文件中放入了一个viewPager,为了效果好看,还做了个导航,使得ViewPager和导航栏能够实现联动.代码里面有解释,我就不详细介绍了!! 在往ViewPager放Fragment的时候,用到的适配器应该是FragmentPagerAdapter 导航栏的制作我是用了一个ImageView+TextView,若这时使用Imageview(或TextView)实现点击事件的

Android Viewpager+Fragment实现滑动标签页

ViewPager 结合Fragment实现一个Activity里包含多个可滑动的标签页,每个标签页可以有独立的布局及响应. 主页布局 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="mat

Viewpager+Fragment出现空白页面的问题

写了三个Fragment,一次点击跳转显示正常,如果从第一个直接跳转到第三个,第三个页面会出现空白界面. 问题找到了:原来动态获取数据页面数据不显示,页面显示空白,就是onCreateView每次都调用导致的,这样fragment每次都会设置新的view,而调试发现,之前的view并没有被回收--这就导致了,新的view覆盖了之前设置的view,这也就说的通了. 结合网上看的资料,得到解决方法一共有以下3种: 1  viewpager.setOffscreenPageLimit(num);num

禁止viewpager fragment 左右滑动

重写viewpager /**  *   * TODO    * @author  Lff   * @data:  2015-7-15 上午11:27:11   * @version:  V1.0  */ public class CustomViewPager extends ViewPager {   private boolean isCanScroll = true;   public CustomViewPager(Context context) {    super(context

viewpager+fragment的懒加载实现微信点击和滑动切换功能(切换效果)

前言 1.从上一片文章之后已经半年没有写文章了,那篇文章之后公司进入疯狂的加班,一直到放年假.年后回来之后换了一家创业公司之后,然后又进入疯狂的加班(≧﹏ ≦) -所以一直都没有写文章(其实这都是借口⊙﹏⊙).现在公司没有那么忙了,也该把文章捡起来了,这毕竟是百利有一害的事(一害:费时间). 2.这半年里除了对代码的热情更加高涨(虽然它总是虐我千百遍(≧﹏ ≦) ),还深深的中了爬山的毒,对于年轻的我来说,爬山让我明白了许多.懂得了许多,也锻炼了我的身体.对于程序员来说身体是非常重要的,大家在周

Android ViewPager+Fragment滑动选项卡,tab点击选项卡

有一段时间一直再研究这个,自Android 3.0以后,很少开发者再用以前的TabWidget控件了.那种效果不是很好,也不能滑动.后来陆续出现了各种各样滑动选项卡,每种的出现都各有优势吧.但我还是推荐ViewPager+Fragment滑动选项卡,tab点击选项卡.因为横屏或者竖屏效果都还不错,针对这种效果,还有一种开源框架的出现.接下来会有所介绍. 转载请注明出处:http://blog.csdn.net/qq_16064871 本文demo下载:请点击 一.ViewPagerActivit