最近在做一個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) {
}
}
我也是個新手,這個問題困擾我兩天了,我不太懂到底是哪里出的問題,請各位大佬指教一下,萬分感謝。
uj5u.com熱心網友回復:
我理解的意思,,你是在fragment 又加了 分類的fragment給你各開源的FlycoTabLayout (https://github.com/H07000223/FlycoTabLayout) 這個拿來直接用吧,簡單還方便
這個是說明 (https://www.jianshu.com/p/2f715eedda08),小伙加油,哈哈哈
uj5u.com熱心網友回復:
對了。這個里面有你要的所有效果:https://github.com/git-xuhao/KotlinMvp ,不過是kotlin 寫的,你找找java的吧轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/129118.html
標籤:Android
上一篇:QT5編譯報錯 invalid use of incomplete type 'class Ui :: Widget'
下一篇:安卓的這種頂部tab怎么實作的
