Fragment与ViewPage切换 getItem执行了两遍,是错误还是本来就这样
有熟悉这块的大神吗 帮忙看看吧 我是动态访问网络加载的Tab导航 连续访问两次接口 取不到数据啊
package com.icss.viewpagerdemos;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.util.TypedValue;
import android.view.Window;
import com.astuetz.PagerSlidingTabStrip;
public class MainActivity extends FragmentActivity {
private PagerSlidingTabStrip tabs;
private ViewPager pager;
private MyPagerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
pager = (ViewPager) findViewById(R.id.pager);
adapter = new MyPagerAdapter(getSupportFragmentManager());
Log.e("FragmentActivity", "onCreate");
pager.setAdapter(adapter);
final int pageMargin = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 4, getResources()
.getDisplayMetrics());
pager.setPageMargin(pageMargin);
tabs.setViewPager(pager);
}
public class MyPagerAdapter extends FragmentStatePagerAdapter {
private final String[] TITLES = { "全部的眼部", "全部","全部","导航","视频" };
public MyPagerAdapter(FragmentManager fm) {
super(fm);
Log.e("MyPagerAdapter", "MyPagerAdapter");
}
@Override
public CharSequence getPageTitle(int position) {
Log.e("MyPagerAdapter", "getPageTitle");
return TITLES[position];
}
@Override
public int getCount() {
// Log.e("MyPagerAdapter", "getCount");
return TITLES.length;
}
@Override
public Fragment getItem(int position) {
Log.e("MyPagerAdapter", "getItem");
Log.e("MyPagerAdapter", "getItem===" + position);
return SuperAwesomeCardFragment.newInstance(position);
}
}
}
SuperAwesomeCardFragment类
package com.icss.viewpagerdemos;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import android.widget.TextView;
public class SuperAwesomeCardFragment extends Fragment {
private static final String ARG_POSITION = "position";
private int position;
static SuperAwesomeCardFragment newInstance(int position) {
SuperAwesomeCardFragment f = new SuperAwesomeCardFragment();
Bundle b = new Bundle();
b.putInt(ARG_POSITION, position);
f.setArguments(b);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("onCreate", "1111111111111111111111111111111");
position = getArguments().getInt(ARG_POSITION);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.e("onActivityCreated", "1111111111111111111111111111111");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
FrameLayout fl = new FrameLayout(getActivity());
fl.setLayoutParams(params);
final int margin = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 3, getResources()
.getDisplayMetrics());
TextView v = new TextView(getActivity());
params.setMargins(margin, margin, margin, margin);
v.setLayoutParams(params);
v.setLayoutParams(params);
v.setGravity(Gravity.CENTER);
v.setBackgroundResource(R.drawable.a);
v.setText("CARD " + (position + 1));
fl.addView(v);
return fl;
}
}
布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/white"
android:layout_width="match_parent"