0
上下文:
使用3個片段執行活動刷新,每個片段在內存使用中相當「沉重」。幾次滑動後不顯示片段
症狀:
幾次滑動後,右側和左側碎片不再顯示,並被黑色空背景替換。中心片段仍然顯示。
要注意:
- 我用下面的其他項目,這同實施包含更多的靜態佈局沒有任何問題 片段。
- 該問題似乎沒有出現在所有設備上。
我實施FragmentPagerAdapter的:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
public MyFragmentPagerAdapter(final FragmentManager fm, final Context context) {
super(fm);
}
@Override
public Fragment getItem(final int i) {
switch (i) {
case 0:
return new FragmentA();
case 1:
return new FragmentB();
default:
return new FragmentC();
}
}
@Override
public int getCount() {
return 3;
}
}
在我的活動:
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
...
private MyFragmentPagerAdapter fragmentPagerAdapter;
private ViewPager mViewPager;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dummy);
this.fragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager, attaching the adapter.
this.mViewPager = (ViewPager) findViewById(R.id.actMainPager);
this.mViewPager.setAdapter(this.fragmentPagerAdapter);
我的假設是,碎片被摧毀免費一些記憶和不再創造。
我的嘗試:
- 使用
FragmentStatePagerAdapter
,因爲我的碎片中含有大量的 「重」 的數據。 - 我在這裏找不到任何與此問題相關的內容或使用Google搜索。
有人遇到過這個問題,並有解決方案嗎?我做錯了什麼?
編輯
繼堆棧跟蹤,該片段已經被拆卸。有人知道爲什麼嗎?如何重新貼上它?
Exception in handleMessage: java.lang.IllegalStateException: Fragment StatusFragment{41f9bc20} not attached to Activity
03-19 12:46:06.743: W/BaseFragment(30801): at android.support.v4.app.Fragment.getResources(Fragment.java:579)
03-19 12:46:06.743: W/BaseFragment(30801): at com.dummy.fragment.BaseFragment.updateButtonStatus(BaseFragment.java:482)
03-19 12:46:06.743: W/BaseFragment(30801): at com.dummy.fragment.BaseFragment$MyHandler.handleMessage(BaseFragment.java:467)