为了账号安全,请及时绑定邮箱和手机立即绑定

当父项不是活动而是片段时的空选项卡

当父项不是活动而是片段时的空选项卡

慕沐林林 2023-06-21 15:51:45
我有一个正在运行的带有导航抽屉活动的 Android 应用程序。对于每个菜单项,我想实现一个单独的片段,这样我就可以使用相同的工具栏和抽屉菜单。现在,此片段之一应包含一个带有 3 个选项卡的视图(其中有 3 个带有 Recyclerviews 的片段)。我创建了一个选项卡式活动并将代码迁移到一个新的片段中。当我第一次使用选项卡片段单击菜单项时,它工作得很好。但是当我浏览菜单然后再次打开选项卡片段时,它显示了 3 个选项卡,但其中没有任何内容。现在,当我单击第三个选项卡时,将显示数据。当我切换回第一个选项卡时,数据也回来了。只有中间的选项卡保持空白。我在一个全新的空项目上尝试了这种方法,只有一个导航抽屉活动和一个选项卡式活动,我还将代码迁移到了一个片段。我只使用了 Android-Studio (3.4.2) 生成的代码。在这些选项卡中只有文本视图,但仍然存在相同的问题。选项卡片段(从生成的选项卡式活动迁移的代码):    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        v = inflater.inflate(R.layout.activity_tab, container, false);        context = getActivity().getApplicationContext();        SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(context, getActivity().getSupportFragmentManager());        ViewPager viewPager = v.findViewById(R.id.view_pager);        viewPager.setAdapter(sectionsPagerAdapter);        TabLayout tabs = v.findViewById(R.id.tabs);        tabs.setupWithViewPager(viewPager);        return v;    }生成的SectionsPagerAdapter:public class SectionsPagerAdapter extends FragmentPagerAdapter {    @StringRes    private static final int[] TAB_TITLES = new int[]{R.string.tab_text_1, R.string.tab_text_2};    private final Context mContext;    public SectionsPagerAdapter(Context context, FragmentManager fm) {        super(fm);        mContext = context;    }    @Override    public Fragment getItem(int position) {        // getItem is called to instantiate the fragment for the given page.        // Return a PlaceholderFragment (defined as a static inner class below).        return PlaceholderFragment.newInstance(position + 1);    }    @Nullable    @Override    public CharSequence getPageTitle(int position) {        return "Some Title";    }    @Override    public int getCount() {        // Show 3 total pages.        return 3;    }}我只更改了“getCount”中的制表符数量和“getPageTitle”中返回的字符串是否有可能在菜单项点击时继续使用片段,或者我是否必须使用选项卡式活动?
查看完整描述

1 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

首先,我认为你应该使用childFragmentManager而不是supportFragmentManager。

SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(context, getChildFragmentManager());


查看完整回答
反对 回复 2023-06-21
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信