使用多组ViewPager+TabLayout ,发现第一组可以正常使用,第二组有就不行了。

[复制链接]
查看11 | 回复2 | 2021-1-27 06:24:47 | 显示全部楼层 |阅读模式
最近在做一个APP,我在首页和分类上都是用的几乎同样的布局和代码,但是分类的fragment不会显示,而且分类的页面很奇怪。首先就是他tabLayout滑动的时候并不像首页那样一次滑动可以跳到一个tab_text,他的下划线会停在两个tab_text中间。然后就是不会显示fragment的内容,也就是白的。并且有时候在分类页面滑来滑去会影响首页的数据,让首页的数据也变为空或者乱套(即首页二的数据出现首页三上)。但是随便滑动首页是不会有这种情况的。这个问题困扰我两天了,有没有大佬给点提示方法。图在下面

这是就是那个分类页面滑动下划线停在两个tab_text中间。然后就是不显示数据。
下面是代码截图
HomeFragment

就是些绑定加入视图的操作,很正常的,这个可以正常使用
分类的fragment写的代码和这个几乎一样,就是加入的fragment不同而已。而且,如果在fenleiFragment中不自己手动加入tab名的话是无法显示出tab名的,就整个都是空的了。就是不写tab.addTab(tab.newTab().setText(title.get(0)));,让他自己去加载的话,就加载不出来名字。图一直上传不了了,我贴代码吧
title.add("分类一");
title.add("分类二");
title.add("分类三");
title.add("分类四");
title.add("分类五");
title.add("分类六");
tab.addTab(tab.newTab().setText(title.get(0)));
tab.addTab(tab.newTab().setText(title.get(1)));
tab.addTab(tab.newTab().setText(title.get(2)));
tab.addTab(tab.newTab().setText(title.get(3)));
tab.addTab(tab.newTab().setText(title.get(4)));
tab.addTab(tab.newTab().setText(title.get(5)));
fenleiyiFragment=newFenleiyiFragment();
fenleierFragment=newFenleierFragment();
fenleisanFragment=newFenleisanFragment();
fenleisiFragment=newFenleisiFragment();
fenleiwuFragment=newFenleiwuFragment();
fenleiliuFragment=newFenleiliuFragment();
fragments.add(fenleiyiFragment);
fragments.add(fenleierFragment;
fragments.add(fenleisanFragment);
fragments.add(fenleisiFragment);
fragments.add(fenleiwuFragment);
fragments.add(fenleiliuFragment);
adapter=newMyFragmentPageAdapter(getFragmentManager(),title,fragments);
viewpager.setAdapter(adapter);
tab.setupWithViewPager(viewpager);
就是他们两个用的视图,我都是用的一样的,图一直上传不了了,我贴代码吧
然后他们的视图代码我用的都是一样,当然会各自在不同的xml文件里




MyFragmentPageAdapter代码,应该也没什么问题
publicclassMyFragmentPageAdapterextendsFragmentPagerAdapter{
privateArrayListtab_title;
privateArrayListfragments;
publicMyFragmentPageAdapter(FragmentManagerfm,ArrayListtab_title,ArrayListfragments){
super(fm);
this.tab_title=tab_title;
this.fragments=fragments;
}

@Override
publicFragmentgetItem(intposition){
returnfragments.get(position);
}
@Override
publicintgetCount(){
returnfragments.size();
}
@Nullable
@Override
publicCharSequencegetPageTitle(intposition){
returntab_title.get(position);
}
@Override
publicvoiddestroyItem(@NonNullViewGroupcontainer,intposition,@NonNullObjectobject){
}
}
我也是个新手,这个问题困扰我两天了,我不太懂到底是哪里出的问题,请各位大佬指教一下,万分感谢。



分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:24:47 | 显示全部楼层
我理解的意思,,你是在fragment又加了分类的fragment
给你各开源的FlycoTabLayout(https://github.com/H07000223/FlycoTabLayout)这个拿来直接用吧,简单还方便
这个是说明(https://www.jianshu.com/p/2f715eedda08),小伙加油,哈哈哈
回复

使用道具 举报

千问 | 2021-1-27 06:24:47 | 显示全部楼层
对了。这个里面有你要的所有效果:https://github.com/git-xuhao/KotlinMvp,不过是kotlin写的,你找找java的吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行