上午在片段類中使用ViewPager。在那個ViewPager中有三個頁面在每個頁面上顯示自定義列表視圖.ViewPager有些時候顯示列表視圖在一段時間內正確顯示空白頁面。ViewPager in fragment類無法正常工作
片段類ViewPager
public class Schedule extends Fragment{
RelativeLayout schedule_lay;
Schedule_fragment_adapter sfadp;
ViewPager pager;
TitlePageIndicator tpi;
PagerTabStrip pts;
@Override
public View onCreateView(LayoutInflater inflater,final ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
schedule_lay = (RelativeLayout) inflater.inflate(R.layout.schedule, container, false);
pager = (ViewPager) schedule_lay.findViewById(R.id.viewpager);
pts = (PagerTabStrip)schedule_lay.findViewById(R.id.page_title_indicator);
pts.setDrawFullUnderline(false);
pts.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
pts.setTabIndicatorColor(Color.parseColor("#ff3824"));
initialisePaging();
return schedule_lay;
}
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(getActivity(), Ongoing.class.getName()));
fragments.add(Fragment.instantiate(getActivity(), Upcoming.class.getName()));
fragments.add(Fragment.instantiate(getActivity(), Recent.class.getName()));
this.sfadp = new Schedule_fragment_adapter(super.getActivity().getSupportFragmentManager(), fragments);
pager.setAdapter(this.sfadp);
}
}
FragmentPagerAdapter
public class Schedule_fragment_adapter extends FragmentPagerAdapter {
private final List<Fragment> fragments;
/**
* @param fm
* @param fragments
*/
public Schedule_fragment_adapter(FragmentManager fm,
List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Ongoing";
case 1:
return "Upcoming";
case 2:
return "Recent";
}
return null;
}
}
定製列表視圖類(我的所有三個自定義列表類像下面類)
public class Ongoing extends Fragment{
RelativeLayout ongoing_lay;
ListView ongoing_matches_lv;
ArrayList<Item> ongoing_matches = new ArrayList<Item>();
@Override
public View onCreateView(LayoutInflater inflater,final ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
ongoing_lay = (RelativeLayout) inflater.inflate(R.layout.ongoing, container, false);
return ongoing_lay;
}
}
我無法找到我的問題。可以幫助我解決這個問題。
你嘗試使用列表中的片段? – playmaker420
@ playmaker420編號 – Yugesh
我有一個類似的問題,而從最後一個片段回來時,第一個片段將會去,然後重新加載。我從數據庫中提取數據並填充到列表視圖中。 – playmaker420