【问题标题】:List not showing in Tabs using View pager列表未显示在使用查看寻呼机的选项卡中
【发布时间】:2017-05-27 18:30:17
【问题描述】:

我已经创建了标签。为此,我有一个片段,其中我创建了选项卡并查看寻呼机。还创建了两个片段。

在片段中显示列表。

现在的问题是,当应用程序第一次运行时,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);
        }
    }

}

请指导一下,谢谢..

【问题讨论】:

    标签: java android android-fragments arraylist adapter


    【解决方案1】:

    使用FragmentStatePagerAdapter 而不是FragmentPagerAdapter

    阅读本文了解更多详情 Difference between them

    【讨论】:

    • 我很高兴它成功了,我遇到了同样的问题,花了 2 天时间才找到解决方案和原因,快乐编码
    • 你好,我这工作,但我有家庭活动,因为我有选项菜单所以 onClick 选项菜单我正在替换片段,现在如果我第一次替换 myTrips 片段,我可以再次看到列表如果我返回主片段并查看 myTrips 屏幕,我可以看到列表,但如果我选择任何其他选项菜单并替换另一个片段,则从 myTrips 屏幕中,然后按回我看不到 myTrips 片段中的列表,它显示为空。为此该怎么办?谢谢.. @快速学习者
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    相关资源
    最近更新 更多