最近在做一个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 = new FenleiyiFragment();
fenleierFragment = new FenleierFragment();
fenleisanFragment = new FenleisanFragment();
fenleisiFragment = new FenleisiFragment();
fenleiwuFragment = new FenleiwuFragment();
fenleiliuFragment = new FenleiliuFragment(); fragments.add(fenleiyiFragment);
fragments.add(fenleierFragment;
fragments.add(fenleisanFragment);
fragments.add(fenleisiFragment);
fragments.add(fenleiwuFragment);
fragments.add(fenleiliuFragment); adapter = new MyFragmentPageAdapter(getFragmentManager(),title,fragments);
viewpager.setAdapter(adapter);
tab.setupWithViewPager(viewpager);就是他们两个用的视图,我都是用的一样的,图一直上传不了了,我贴代码吧
然后他们的视图代码我用的都是一样,当然会各自在不同的xml文件里
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="30dp"
app:tabSelectedTextColor="@color/word_select"
app:tabPaddingStart="5dp"
app:tabMinWidth="70dp"
app:tabPaddingEnd="8dp"
app:tabTextColor="#666666"
app:tabIndicatorColor="#FD605D"
app:tabIndicatorFullWidth="false"
app:tabMode="scrollable"
>
</android.support.design.widget.TabLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" />
</FrameLayout>
</LinearLayout>MyFragmentPageAdapter代码,应该也没什么问题
public class MyFragmentPageAdapter extends FragmentPagerAdapter { private ArrayList<String> tab_title;
private ArrayList<Fragment> fragments; public MyFragmentPageAdapter(FragmentManager fm,ArrayList<String> tab_title , ArrayList<Fragment> fragments) {
super(fm);
this.tab_title = tab_title;
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
} @Override
public int getCount() {
return fragments.size();
} @Nullable
@Override
public CharSequence getPageTitle(int position) {
return tab_title.get(position);
} @Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { }
}我也是个新手,这个问题困扰我两天了,我不太懂到底是哪里出的问题,请各位大佬指教一下,万分感谢。
下面是代码截图
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 = new FenleiyiFragment();
fenleierFragment = new FenleierFragment();
fenleisanFragment = new FenleisanFragment();
fenleisiFragment = new FenleisiFragment();
fenleiwuFragment = new FenleiwuFragment();
fenleiliuFragment = new FenleiliuFragment(); fragments.add(fenleiyiFragment);
fragments.add(fenleierFragment;
fragments.add(fenleisanFragment);
fragments.add(fenleisiFragment);
fragments.add(fenleiwuFragment);
fragments.add(fenleiliuFragment); adapter = new MyFragmentPageAdapter(getFragmentManager(),title,fragments);
viewpager.setAdapter(adapter);
tab.setupWithViewPager(viewpager);就是他们两个用的视图,我都是用的一样的,图一直上传不了了,我贴代码吧
然后他们的视图代码我用的都是一样,当然会各自在不同的xml文件里
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="30dp"
app:tabSelectedTextColor="@color/word_select"
app:tabPaddingStart="5dp"
app:tabMinWidth="70dp"
app:tabPaddingEnd="8dp"
app:tabTextColor="#666666"
app:tabIndicatorColor="#FD605D"
app:tabIndicatorFullWidth="false"
app:tabMode="scrollable"
>
</android.support.design.widget.TabLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" />
</FrameLayout>
</LinearLayout>MyFragmentPageAdapter代码,应该也没什么问题
public class MyFragmentPageAdapter extends FragmentPagerAdapter { private ArrayList<String> tab_title;
private ArrayList<Fragment> fragments; public MyFragmentPageAdapter(FragmentManager fm,ArrayList<String> tab_title , ArrayList<Fragment> fragments) {
super(fm);
this.tab_title = tab_title;
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
} @Override
public int getCount() {
return fragments.size();
} @Nullable
@Override
public CharSequence getPageTitle(int position) {
return tab_title.get(position);
} @Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { }
}我也是个新手,这个问题困扰我两天了,我不太懂到底是哪里出的问题,请各位大佬指教一下,万分感谢。
解决方案 »
- 移动定位 图吧地图
- 求教:支付宝客户端Android版的相对独立模块如何实现
- ViewPager + gridview 点击获取信息不对应
- 关于 安卓模拟器跟电脑通讯的问题??
- android1.4和android1.6有 android2.1没有的 关于audio的bug
- 有关联网的一些问题
- andengine 如何让两个精灵在AutoParallaxBackground跑起来
- 请问:Android imageview一直驻留屏幕按退出也不被覆盖怎么实现的了?
- 广告机安卓软件 想开发一个 搞了好久搞不出来
- android 线程操作,请赐教,谢谢!
- 安卓Okhttp3 Cookie值丢失的问题
- android 布局缩放和移动
给你各开源的FlycoTabLayout (https://github.com/H07000223/FlycoTabLayout) 这个拿来直接用吧,简单还方便
这个是说明 (https://www.jianshu.com/p/2f715eedda08),小伙加油,哈哈哈