मेरे पास एक टुकड़ा है जिसमें व्यूपेजर है। ViewPager एक एडाप्टर से जुड़ा हुआ है जिसमें टुकड़ों का एक सेट होता है।एक टुकड़े के भीतर खंड खंडदर्शी प्रदर्शित करें
पैरेंट खंड को लोड करने पर, मुझे संदेश के साथ IllegalStateException
से मुलाकात की गई है: java.lang.IllegalStateException: Recursive entry to executePendingTransactions
।
कुछ शोध मुझे निष्कर्ष यह है कि प्रणाली एक और टुकड़ा के भीतर असमर्थ प्रदर्शन टुकड़े है के लिए प्रेरित किया, लेकिन वहाँ कुछ संकेत हैं कि यह वास्तव में एक ViewPager (A bug in ViewPager using it with other fragment) के उपयोग के साथ ऐसा करना संभव है हो रहा है।
असल में, अगर मैं अपने माता-पिता खंड में एक बटन जोड़ता हूं जो दबाए जाने पर मेरे व्यूपेजर पर mPager.setAdapter(mAdapter)
पर कॉल करता है, तो ViewPager सफलतापूर्वक लोड हो जाता है। यह आदर्श नहीं है।
मुद्दा तब खंड खंडन से संबंधित होना चाहिए। इसलिए मेरा सवाल यह है: क्या किसी और को इस मुद्दे के आसपास एक रास्ता मिला है, और यदि हां, तो कैसे?
क्या विखंडन लेनदेन के बाद तक ViewPager पर एडाप्टर सेटिंग्स को देरी करने का कोई तरीका है?
@Override
public 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);
}
}
एंड्रॉइड सपोर्ट लाइब्रेरी के संशोधन 11 में टुकड़े घोंसले की क्षमता को जोड़ा गया है। फ्रैगमेंट क्लास में अब "getChildFragmentManager" विधि है। मैंने इसी तरह की एक साधारण परियोजना बनाई जो https: // github पर पाया जा सकता है।com/marsucsb/नेस्टेड-टुकड़े –
http://stackoverflow.com/q/18097567/1503130 क्या आप इस – Prateek