I have ViewPager with two pages:
MainActivity:
pageCount = 2;
pager = (ViewPager) findViewById(R.id.pagerDashboard);
pagerAdapter = new DashboardFragmentAdapter(getSupportFragmentManager(),pageCount);
pager.setAdapter(pagerAdapter);
DashboardFragmentAdapter:
public class DashboardFragmentAdapter extends FragmentPagerAdapter {
int pageCount;
public DashboardFragmentAdapter(FragmentManager fm,int pageCount) {
super(fm);
this.pageCount = pageCount;
}
@Override
public Fragment getItem(int position) {
return DashboardFragment.newInstance(position);
}
@Override
public int getCount() {
return pageCount;
}}
Fragment:
public class DashboardFragment extends Fragment {
private static final String DASHBOARD_INDEX = "dashboard_index";
static final String TAG = "myLogs";
int dashboardIndex;
public DashboardFragment() {
// Required empty public constructor
}
public static DashboardFragment newInstance(int dashboardIndex) {
DashboardFragment fragment = new DashboardFragment();
Bundle args = new Bundle();
args.putInt(DASHBOARD_INDEX, dashboardIndex);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
dashboardIndex = getArguments().getInt(DASHBOARD_INDEX);
}
Log.d(TAG, "onCreate: " + dashboardIndex);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_dashboard, container, false);
Log.d(TAG, "onCreateView: " + dashboardIndex);
return rootView;
}
}
Log result:
D/myLogs: onCreate: 0
D/myLogs: onCreate: 1
D/myLogs: onCreateView: 1
W/FragmentManager: moveToState: Fragment state for DashboardFragment{193d3b90 #0 id=0x7f0e0087 android:switcher:2131624071:1} not updated inline; expected state 3 found 2
D/myLogs: onCreateView: 0
Why onCreateView with index 1, call before index 0. But onCreate call correctly? And what is W/FragmentManager warning means?
In application all two pages are loaded correctly, but we have to wait for the second page before get the data in the first.