我有一個(gè)包含ViewPager的片段。ViewPager與包含一組片段的適配器關(guān)聯(lián)。加載父片段后,我IllegalStateException看到一條消息:java.lang.IllegalStateException: Recursive entry to executePendingTransactions。一些研究使我得出這樣的結(jié)論:系統(tǒng)無(wú)法顯示另一個(gè)片段中的片段,但是似乎有跡象表明,使用ViewPager可以完全做到這一點(diǎn)(ViewPager中的錯(cuò)誤與其他片段一起使用))。實(shí)際上,如果我向父片段添加一個(gè)按鈕,該按鈕mPager.setAdapter(mAdapter)在按下時(shí)會(huì)調(diào)用ViewPager,則ViewPager將成功加載。這是不理想的。然后,問(wèn)題必須與片段生命周期有關(guān)。因此,我的問(wèn)題是:還有其他人找到解決此問(wèn)題的方法嗎?有什么方法可以將ViewPager上的適配器的設(shè)置延遲到片段事務(wù)之后?這是我的父片段代碼: @Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mView = inflater.inflate(R.layout.team_card_master, container, false); mViewPager = (ViewPager)mView.findViewById(R.id.team_card_master_view_pager); final Button button = (Button)mView.findViewById(R.id.load_viewpager_button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mViewPager.setAdapter(mAdapter); button.setVisibility(View.GONE); } }); mAdapter = new ViewPagerAdapter(getFragmentManager()); // mViewPager.setAdapter(mAdapter); return mView;}和適配器:public class ViewPagerAdapter extends FragmentPagerAdapter { public ViewPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { if (mCursor == null) return 0; else return mCursor.getCount(); } @Override public Fragment getItem(int position) { Bundle b = createBundle(position, mCursor); return TeamCardFragment.newInstance(b); }}
- 3 回答
- 0 關(guān)注
- 463 瀏覽
添加回答
舉報(bào)
0/150
提交
取消