我正在使用FragmentActivity和ViewPager來顯示幾個片段。我想根據傳遞給FragmentActivity的意圖每次顯示不同的片段。但問題是當我在setAdapter()之後使用setCurrentItem()時,第一個片段將會始終創建,我如何避免這種情況?如何避免在setCurrentItem之前創建第一個片段?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.container_page);
mDemoCollectionPagerAdapter = new FragmentPageAdapter(
getSupportFragmentManager());
mViewPager = (ViewPager)findViewById(R.id.pager);
mViewPager.setAdapter(mDemoCollectionPagerAdapter);
Intent intent = getIntent();
int whichFragment = intent.getIntExtra(Constants.EXTRA_WHICH_FRAGMENT, 0);
mViewPager.setCurrentItem(whichFragment, false);
setActionBarTitle(whichFragment);
mViewPager.setOnPageChangeListener(this);
}
嘗試過,但沒有工作 – Paparika
對不起,但讓我看看我是否明白,你希望你的片段請求的意圖是先創建而不是第一個片段?我假設這是出於性能原因。你嘗試過adapter.setPrimaryItem(容器,位置,對象)嗎? –
我在另一個Activity中有3個按鈕,當我按下其中一個按鈕時,會創建FragmentActivity並顯示不同的片段,並且是有性能問題,第一個片段有很多工作要做,所以當需要第二個片段時,的時間花費在準備1st片段上。但似乎系統會預加載其他片段以獲得更好的用戶體驗(當片段間滑動時),所以也許我應該嘗試優化第一個片段? – Paparika