【发布时间】:2016-01-11 00:39:14
【问题描述】:
我在使用带有 Fragments 的 ViewPager 时遇到问题。 在我的应用程序中,我有一个片段,其中有一个 ViewPager,其中的每个片段都有一个 ListView。 ListView 上的每个项目都会打开另一个片段,显示有关该项目的更多详细信息。 到目前为止一切都很好,但是当我 popBackStack FragmentManager 时,ViewPager 中的当前片段不可见。
如果我尝试在页面之间滑动,我可以看到下一页,然后向后滑动并再次看到隐藏的页面。
PageAdapter 代码:
private class SchedulePageAdapter extends FragmentStatePagerAdapter{
JSONArray scheduleJsonArray;
public SchedulePageAdapter(FragmentManager fm,JSONArray scheduleJsonArray) {
super(fm);
this.scheduleJsonArray = scheduleJsonArray;
}
@Override
public ScheduleFragment getItem(int position) {
ScheduleFragment scheduleFragment = new ScheduleFragment();
Bundle bundle = new Bundle();
try {
bundle.putString("json",scheduleJsonArray.getJSONObject(position).getJSONArray("channel_schedule").toString());
bundle.putString("day",getArguments().getString("day"));
bundle.putString("channel",channelTextView.getText().toString());
} catch (JSONException e) {
e.printStackTrace();
}
scheduleFragment.setArguments(bundle);
return scheduleFragment;
}
public JSONArray getScheduleJsonArray() {
return scheduleJsonArray;
}
@Override
public int getCount() {
int count = scheduleJsonArray.length();
return count;
}
}
在列表视图中打开项目:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction
.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left, R.anim.slide_in_right, R.anim.slide_out_right)
.replace(R.id.mainFrameLayout, fullScheduleFragment, FullScheduleFragment.class.getSimpleName())
.addToBackStack(PhoneMainActivity.MENU_STACK).commit();
【问题讨论】:
标签: java android android-fragments android-viewpager