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);
}
}
}