列表未显示在使用“查看”寻呼机的选项卡中



我已经创建了选项卡。为此,我有一个片段,我在其中创建了选项卡和视图寻呼机。还创建了两个片段。

显示片段中的列表。

现在的问题是,当应用程序首次运行时,MyTrips片段在首次加载时可以看到两个选项卡中的列表,但是如果我向后移动并从应用程序的选项菜单中选择MyTrips片段,它不会在两个选项卡中显示任何列表。

当我进行调试时,我发现片段没有第二次添加。我正在调用视图PagerAdapter onCreateView的片段。

那么它可能只加载一次?

我的旅行片段

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

请用这个指导谢谢..

使用 FragmentStatePagerAdapter 而不是 FragmentPagerAdapter

阅读此内容了解更多详情它们之间的区别

最新更新