2016-01-10 100 views
1

我遇到了帶有碎片的ViewPager的問題。 在我的應用程序中,我有一個片段,它裏面有一個ViewPager,每個片段裏面都有一個ListView。 ListView上的每個項目打開另一個片段,顯示有關該項目的更多詳細信息。 到目前爲止這麼好,但是當我popBackStack的FragmentManager ViewPager中的當前片段是看不到的。帶有碎片的ViewPager被隱藏

如果我嘗試在頁面之間滑動,我可以看到下一頁,然後向後滑動並再次看到隱藏的頁面。

PageAdapter代碼:ListView中

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(); 

回答

0

嘗試使用getChildFragmentManager()當你實例化你的SchedulePageAdapter

PagerAdapter adapter = new SchedulePageAdapter (getChildFragmentManager(), scheduleJsonArray); 
     pagerData.setAdapter(adapter); 

還使用getSupportFragmentManager unstead:

FragmentManager fragmentManager = getSupportFragmentManager(); 

如果仍然不到風度的工作,請發表評論

好運

+0

感謝,解決我的所有問題 – user3414609