私はアンドロイドプロジェクトに取り組んでいます。私は、ビューページとフラグメントの異常な動作を発見しました。ビューページャ内のいくつかのフラグメントがロードされると、フラグメントの一部は、通常10秒以上の間、コンテンツをまったく表示しません。その後、内容が正しく表示されます。ここでAndroidの断片にはコンテンツが表示されません
は私が持っているものです。
そのUIはviewpager mMainPagerが含まれているMainActivityを使用しています。
private void setupViewPager() {
mMainPageAdapter = new MainPageAdapter(getSupportFragmentManager());
mMainPager.setAdapter(mMainPageAdapter);
mMainPager.addOnPageChangeListener(this);
mMainPager.setOnSwipeOutListener(this);
}
メインページアダプターは、MainActivity内で以下のように定義されています。
private class MainPageAdapter extends FragmentStatePagerAdapter {
public MainPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUMBER_OF_PAGES;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return Fragment0.newInstance();
case 1:
return Fragment1.newInstance();
case 2:
return Fragment2.newInstance();
default:
return Fragment3.newInstace();
}
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
}
}
Fragment3が内部にネストviewpagerを持っている:それは4つの断片があります。そのビューページには4つのフラグメントが含まれています。
ChatsViewPager pagerChats;
アダプタがcom.ogaclejapan.smarttablayout.utils.v4
FragmentStatePagerItemAdapter adapterSegChat = new FragmentStatePagerItemAdapter(getChildFragmentManager(), FragmentPagerItems.with(getActivity())
.add(getString(R.string.string0), Fragment30.class)
.add(getString(R.string.string1), Fragment31.class)
.add(getString(R.string.string2), Fragment32.class)
.add(getString(R.string.string3), Fragment33.class)
.create());
pagerChats.setAdapter(adapterSegChat);
を使用していますMainActivityが起動されると、フラグメント2が表示されました。ユーザーがFragment3にスワイプすると、pagerChatsの4つのフラグメントがすべて正しく表示されます。スワイプは、これらの4つのフラグメント間で円滑に移行することができます。
ただし、ユーザーがFragment0とFragment1にスワイプした後、4つのフラグメントのうち2つをFragment3に戻すと、pagerChatsのFragment32とFragment33は表示されなくなります。エラーも凍結もありません。単に空白の画面が表示されます。
ユーザーが10秒を超えると、Fragment32とFragment33の内容が表示されます。
上記の処理を繰り返しても、同じことが再度発生します。
このことはこのようなものですなぜAPI実行し、24
をサムスンS7を使用していますか?それは記憶の制約のためですか?
私の問題を解決しました。ありがとう。 – windchime
あなたを助けてうれしい!すぐに多くの感謝と "戻ってくる"! – statosdotcom