Android 选项卡布局和视图寻呼机内部选项卡布局和视图寻呼机
在我的主要活动中,我创建了tablayout和viewpager,然后当我切换到选项卡B(选项卡A到选项卡B)和选项卡B内部时,我创建了另一个选项卡布局和viewpager,但内容变为空,只显示选项卡名称。请指导我这个问题。这是我在选项卡B中的代码: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
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的顶部有另一个选项卡。你能分享你正在尝试做的事情的图像/图表吗