首页 > 解决方案 > 标签项内的 Android 片段导航

问题描述

我有一个 TabLayout 应用程序。
在第一个选项卡中,我想显示带有电影的 RecyclerView 并单击它们以显示电影详细信息。
我已经包含了 TabLayout + View Pager,并扩展了 FragmentPagerAdapter。目前,我可以在标签之间导航(成功的片段)。
问题是我无法从 MoviesFragment 导航到 MovieDetailFragment(选择第一个选项卡时)。
我不知道应该声明什么 containerViewId,以及如何传递数据。

                Fragment fragment = new MovieDetailFragment();
            getActivity().getSupportFragmentManager().beginTransaction()
                    .replace(R.id.pager, fragment)
                    .commit();

SecondFragment 已实例化但不可见。
R.id.pager:是我的 Main Activity 中的 ViewPager 组件。

标签: androidandroid-fragmentsandroid-viewpagerandroid-tablayoutfragmentmanager

解决方案


家庭活动

SectionsPagerAdapter sectionsPagerAdapter = new 
SectionsPagerAdapter(this, getSupportFragmentManager());
viewPager = findViewById(R.id.view_pager);
viewPager.setAdapter(sectionsPagerAdapter);
TabLayout tabs = findViewById(R.id.tabs);
tabs.setupWithViewPager(viewPager);
tabs.addOnTabSelectedListener(tabSelectedListener);
setupTabIcons(tabs);

适配器类

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    private final Context mContext;

    public SectionsPagerAdapter(Context context, FragmentManager fm) {
        super(fm);
        mContext = context;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0: return new HomeFragment();
            case 1: return Fragment2();
            case 2: return Fragment3();
            case 3: return Fragment4();
            default: return null;
        }

    }


    @Override
    public int getCount() {
        // Show 2 total pages.
        return 4;
    }
}

推荐阅读