Tab项内的Android片段导航

时间:2019-12-02 11:35:03

标签: android android-fragments android-viewpager android-tablayout fragmentmanager

我有一个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:是“主要活动”中的ViewPager组件。

1 个答案:

答案 0 :(得分:0)

家庭活动

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