Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选项卡项内的Android片段导航_Android_Android Fragments_Android Viewpager_Android Tablayout_Fragmentmanager - Fatal编程技术网

选项卡项内的Android片段导航

选项卡项内的Android片段导航,android,android-fragments,android-viewpager,android-tablayout,fragmentmanager,Android,Android Fragments,Android Viewpager,Android Tablayout,Fragmentmanager,我有一个表格布局应用程序。 在第一个选项卡中,我想显示包含电影的RecyclerView,并通过单击它们来显示电影详细信息。 我已经包括了一个TabLayout+查看寻呼机,并扩展了FragmentPagerAdapter。目前,我可以在选项卡之间导航(成功的片段)。 问题是我无法从MoviesFragment导航到MovieDetailFragment(当选择第一个选项卡时)。 我不知道ContainerWebID应该声明什么,以及如何传递数据 Fragment

我有一个表格布局应用程序。
在第一个选项卡中,我想显示包含电影的RecyclerView,并通过单击它们来显示电影详细信息。
我已经包括了一个TabLayout+查看寻呼机,并扩展了FragmentPagerAdapter。目前,我可以在选项卡之间导航(成功的片段)。
问题是我无法从MoviesFragment导航到MovieDetailFragment(当选择第一个选项卡时)。
我不知道ContainerWebID应该声明什么,以及如何传递数据

                Fragment fragment = new MovieDetailFragment();
            getActivity().getSupportFragmentManager().beginTransaction()
                    .replace(R.id.pager, fragment)
                    .commit();
第二个片段已实例化,但不可见

R.id.pager:是我的主要活动中的ViewPager组件。

主页活动

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

为什么不显示一个对话框片段呢?我认为这不是一个好的解决方案,正如我所写的,标签栏正在工作。我已经在我的应用程序中包含了上述代码。问题是HomeFragment是一个项目(电影)列表,如果您在项目中单击,则会显示详细信息页面。如何实现这一点,如何在tabitem中导航