viewpager fragment 预加载

1.布局 

mainactivity

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    


</FrameLayout>



homefragment

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.test.MainActivity" >
<com.example.test.TabPageIndicator
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:id="@+id/tpi_pager"
   />

<view
        android:id="@+id/layout_content"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1.0" 
        class="com.example.test.MyViewPager"/>
   
   
</LinearLayout>


2. basefragment

public abstract class BaseFragment extends Fragment {
public View view;
public Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = getActivity();
}

//加载UI 方法,xml---->view
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = initView();
return view;
}

//加载数据,填充UI的方法
@Override
public void onActivityCreated(Bundle savedInstanceState) {
initData();
super.onActivityCreated(savedInstanceState);
}


public abstract View initView() ;
public abstract void initData() ;
}


3.basepager

public abstract class BasePager {
public Context context;
private View view;
//构建UI的方法
public abstract View initView();
//填充数据的方法
public abstract void initData();

public BasePager(Context context) {
this.context = context;
//当前的view其实就是页面的展示效果
view = initView();
}
//返回当前页面样式的方法
public View getRootView(){
return view;
}

//将请求网络的操作抽取到父类中
public void requestData(HttpMethod httpMethod,String url,
RequestParams params,RequestCallBack<String> callBack) {
// RequestParams requestParams = new RequestParams();
// requestParams.addBodyParameter("name", "ooxx");

// RequestParams requestParams = new RequestParams();
requestParams.ad
// List<NameValuePair> arrayList = new ArrayList<NameValuePair>();
//
// BasicNameValuePair basicNameValuePair = new BasicNameValuePair("name", "ooxx");
// BasicNameValuePair basicNameValuePair1 = new BasicNameValuePair("password", "ooxx");
// BasicNameValuePair basicNameValuePair2 = new BasicNameValuePair("id", "ooxx");
//
// arrayList.add(basicNameValuePair);
// arrayList.add(basicNameValuePair1);
// arrayList.add(basicNameValuePair2);
//
// requestParams.addBodyParameter(arrayList);
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(httpMethod,url,params,callBack);
}
}


4、挂载的fragment

public class HomeFragment extends BaseFragment {
public static final String tag = "HomeFragment";


private MyViewPager layout_content;
private TabPageIndicator indicator;

// @ViewInject(R.id.layout_content)
// private ViewPager layout_content;



private List<BasePager> pagerList;


@Override
public View initView() {
view = View.inflate(context, R.layout.activity_main, null);
//xutil锛屾敞瑙g殑鏂瑰紡鎵惧埌鎺т欢
layout_content = (MyViewPager) view.findViewById(R.id.layout_content);
indicator = (TabPageIndicator) view.findViewById(R.id.tpi_pager);
return view;
}


@Override
public void initData() {

pagerList = new ArrayList<BasePager>();

//设置pager
pagerList.add(new FunctionPager(context));
pagerList.add(new NewCenterPager(context));
pagerList.add(new SmartServicePager(context));


layout_content.setAdapter(new MyPagerAdatper());
indicator.setViewPager(layout_content);
layout_content.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int position) {
//璇锋眰缃戠粶鏁版嵁锛屽~鍏匲I鐨勬搷浣?
pagerList.get(position).initData();
}

@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {

}

@Override
public void onPageScrollStateChanged(int state) {

}
});
}

class MyPagerAdatper extends PagerAdapter{


@Override
public CharSequence getPageTitle(int position) {
return pagerList.get(position).toString();
}

@Override
public int getCount() {
return pagerList.size();
}


@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
Log.i(tag, "instantiateItem position = "+position);
container.addView(pagerList.get(position).getRootView());
return pagerList.get(position).getRootView();
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
Log.i(tag, "destroyItem position = "+position);
container.removeView((View)object);
}
}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值