我有NavigationDrawer
,當我第一次選擇ViewPager
的片段時,所有工作都很好,但如果我第二次選擇該項目或更多,我會看到白色屏幕,請在ViewPager
的片段中撥打onViewCreated
。我如何解決它?ViewPager bug如果我再次打開屏幕
集片段與ViewPager:
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment)
.commit();
對於ViewPager我用FragmentPagerAdapter:
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Fragment1();
break;
case 1:
fragment = new Fragment2();
break;
case 2:
fragment = new Fragment3();
break;
}
return fragment;
}
代碼在Fragment1
,Fragment2
和Fragment3
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getData(); // get Data from internet
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
adapter = MyAdapter(getActivity(), R.layout.item_best, objects);
listView = (ListView) view.findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipeRefreshLayout);
swipeRefreshLayout.setOnRefreshListener(onRefreshListener);
if (objects.size() == 0) {
swipeRefreshLayout.setRefreshing(true);
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
...
}
附上視圖尋呼機代碼。你使用片段管理器的方式不適合你的方式 – EE66
你在Fragment1,Fragment2,Fragment3中做什麼? –
如果您使用'FragmentPagerAdapter',則不應手動附加片段。這應該由適配器來完成。 –