2017-05-27 34 views
0

我已經創建了選項卡。爲此我有一個片段,我在其中創建了選項卡並查看尋呼機。還創建了兩個片段。列表中沒有顯示使用查看分頁器的標籤

顯示片段中的列表。

現在的問題是,當第一次運行應用程序MyTrips片段時,第一次加載可以看到兩個選項卡中的列表,但如果我移回來,並從應用程序的選項菜單選擇MyTrips片段它不顯示任何列表標籤。

正如我所做的調試,我發現碎片沒有得到第二次添加。我正在調用viewPagerAdapter onCreateView的一個片段。

那麼可能是隻加載一次?

MyTripsFragment

public class MyTrips extends Fragment { 

    private ViewPager viewPager; 
    private TabsPagerAdapter mAdapter; 
    private int Numboftabs =2; 
    private TabLayout tabLayout; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View view = inflater.inflate(R.layout.fragment_my_trips, container, false); 


     mAdapter = new TabsPagerAdapter(getActivity().getFragmentManager(),Titles,Numboftabs); 
     viewPager = (ViewPager)view.findViewById(R.id.pager); 

     setupViewPager(viewPager); 


     tabLayout = (TabLayout)view.findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(viewPager); 

     return view; 
    } 

    private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager()); 
     adapter.addFragment(new ScheduledTravelFragment(), "Scheduled Travel"); 
     adapter.addFragment(new TravelHistoryFragment(), "Travel History"); 
     viewPager.setAdapter(adapter); 
    } 


    class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     public void addFragment(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 

} 

請與本指南感謝你..

回答

1

使用FragmentStatePagerAdapter而不是FragmentPagerAdapter

閱讀此瞭解更多詳情 Difference between them

+0

喔是的,。工作非常感謝你.. – Sid

+1

我很高興它的工作,我有同樣的問題,並花了2天找到解決方案和原因,快樂編碼 –

+0

你好,我這工作,但我有家庭活動,我有選項菜單,所以選項菜單的onClick我正在替換片段,現在如果我第一次替換myTrips片段,我可以看到列表,如果我回到主片段並查看myTrips屏幕,我可以從myTrips屏幕看到列表,如果我選擇其他選項菜單並替換另一個片段,然後按回來我不能看到myTrips片段中的列表顯示爲空。該怎麼做?謝謝.. @快速學習者 – Sid