您的位置:首页 > 其它

viewpager+fragment实现滑动页面

2015-01-20 17:38 302 查看
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.example.fragment.WillFragment;

public class WillPagerAdapter extends FragmentStatePagerAdapter {

private List<Will> 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;
}

/*
* 生成新的 Fragment 对象。 .instantiateItem() 在大多数情况下,都将调用 getItem() 来生成新的对象
*/
@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();
}

/**
* 要求getItemPosition、FragmentStatePagerAdapter
*/
public void remove(int position) {
mList.remove(position);
notifyDataSetChanged();
}

@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}

}


2、WillFragment

public static WillFragment newInstance(Will will) {
Log.i("WillFragment", "newInstance=" + 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);
mWill = getArguments() != null ? (Will) getArguments().getSerializable(
"will") : mWill;

Log.i(tag, "onCreate=" + mWill);

likeFlag = mWill.isLike();
viewFlag = likeFlag;

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
// 如果提供root时,返回值其实就是这个root,这个方法就是把xml解析成view之后挂载这个root下。
// 如果root传null(不提供root),返回值是View,它就是xml布局里面的根节点
View view = inflater.inflate(R.layout.fragment_will, container, false);
return view
}


public static WillFragment newInstance(Will will) {
Log.i("WillFragment", "newInstance=" + 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);
mWill = getArguments() != null ? (Will) getArguments().getSerializable(
"will") : mWill;

Log.i(tag, "onCreate=" + mWill);

likeFlag = mWill.isLike();
viewFlag = likeFlag;

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
// 如果提供root时,返回值其实就是这个root,这个方法就是把xml解析成view之后挂载这个root下。
// 如果root传null(不提供root),返回值是View,它就是xml布局里面的根节点
View view = inflater.inflate(R.layout.fragment_will, container, false);
return view
}


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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: