Android 选项卡布局和视图寻呼机内部选项卡布局和视图寻呼机

Android 选项卡布局和视图寻呼机内部选项卡布局和视图寻呼机,android,android-viewpager,Android,Android Viewpager,在我的主要活动中,我创建了tablayout和viewpager,然后当我切换到选项卡B(选项卡A到选项卡B)和选项卡B内部时,我创建了另一个选项卡布局和viewpager,但内容变为空,只显示选项卡名称。请指导我这个问题。这是我在选项卡B中的代码: public class TabB extends BaseFragment { private TabLayout tabLayout; private ViewPager viewPager; @Override public int ge

在我的主要活动中,我创建了tablayout和viewpager,然后当我切换到选项卡B(选项卡A到选项卡B)和选项卡B内部时,我创建了另一个选项卡布局和viewpager,但内容变为空,只显示选项卡名称。请指导我这个问题。这是我在选项卡B中的代码:

public class TabB extends BaseFragment {

private TabLayout tabLayout;
private ViewPager viewPager;

@Override
public int getLayoutResourceId() {
    return R.layout.fragmentB;
}

@Override
public void initView(View view) {
    viewPager = (ViewPager) view.findViewById(R.id.viewpager);
    setupViewPager(viewPager);
    tabLayout = (TabLayout) view.findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
}

private void setupViewPager(ViewPager viewPager) {
    ViewChildPagerAdapter adapter = new ViewChildPagerAdapter(getChildFragmentManager());
    adapter.addFragment(new TabC, "tab c");
    adapter.addFragment(new TabD, "tab d");
    viewPager.setAdapter(adapter);
}

public static class ViewChildPagerAdapter extends FragmentStatePagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mTitle = new ArrayList<>();

    public ViewChildPagerAdapter(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);
        mTitle.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mTitle.get(position);
    }


}
public类TabB扩展了BaseFragment{
私人摊位摊位;
私人视页机视页机;
@凌驾
public int getLayoutResourceId(){
返回R.layout.fragmentB;
}
@凌驾
公共无效初始视图(视图){
viewPager=(viewPager)view.findViewById(R.id.viewPager);
设置viewPager(viewPager);
tabLayout=(tabLayout)view.findviewbyd(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
专用无效设置ViewPager(ViewPager ViewPager){
ViewChildPagerAdapter适配器=新的ViewChildPagerAdapter(getChildFragmentManager());
adapter.addFragment(新TabC,“TabC”);
adapter.addFragment(新选项卡“选项卡d”);
viewPager.setAdapter(适配器);
}
公共静态类ViewChildPagerAdapter扩展了FragmentStatePagerAdapter{
私有最终列表MFFragmentList=new ArrayList();
private final List mTitle=new ArrayList();
公共视图ChildPageRadapter(碎片管理器){
高级经理;
}
@凌驾
公共片段getItem(int位置){
返回MFFragmentList.get(位置);
}
@凌驾
public int getCount(){
返回MFFragmentList.size();
}
public void addFragment(片段片段,字符串标题){
添加(片段);
增加(标题);
}
@凌驾
公共字符序列getPageTitle(int位置){
返回mTitle.get(位置);
}
}

}

我不认为你要在一个单独的片段中创建一个新的表格布局。为什么不在活动本身上创建表格呢?然后您只需调用一次
setupWithViewPager()

您的选项卡中不应该有其他选项卡-这是一种糟糕的做法。不能有嵌套选项卡。想象一下,您向左滑动以更改选项卡:您要更改哪个选项卡,内部选项卡还是外部选项卡?我建议你重新考虑你的导航界面。看起来是一个糟糕的设计。。。如果您水平滑动,哪个ViewPager应该移动?是的,我知道,但我必须根据客户的要求进行移动。他们在底部有选项卡布局,然后他们希望在片段B的顶部有另一个选项卡。你能分享你正在尝试做的事情的图像/图表吗