• 【Android】 java.lang.IllegalStateException: Recursive entry to executePendingTransactions


    在Fragment里面添加Viewpager,Viewpager由多个Fragment组成

    "引——没有拼命的干劲,怎能有精彩的结果!"

    java.lang.IllegalStateException: Recursive entry to executePendingTransactions
    找到发送错误的地方是viewpager.setAdapter()处。

    我的应用场景是: 嵌套使用Fragment使用,最外层使用了一个第三方的库,里面使用FragmentActivity,每个Fragment中又使用ViewPager再嵌套Fragment

    解决方法:嵌套Fragment设置PageAdapter时要使用getChildFragmentManager。

    New version of Support Library v4 (or Android 4.2, ofcourse) resolve this problem much simply. For do this, simply do constructor of your custom FragmentPagerAdapter like this:

    public CustomFragmentPagerAdapter(android.support.v4.app.Fragment fragment)
    {
        super(fragment.getChildFragmentManager());
        // write your code here
    }

    This work because new Android version approve using nested Fragments

    我这里没有修改CustomFragmentPagerAdapter,而是新建CustomFragmentPagerAdapter对象时使用参数改为this.getChildFragmentManager();

    adapter = new TabPageIndicatorAdapter(this.getChildFragmentManager()); 
    
    TabPageIndicatorAdapter类内容不变:
     /**
    	 * ViewPager
    	 * @author liwenjin
    	 *
    	 */
        class TabPageIndicatorAdapter extends FragmentPagerAdapter {
           
        	public TabPageIndicatorAdapter(FragmentManager  fm) {
                super(fm);
                
            }
    
            @Override
            public Fragment getItem(int position) {
                Fragment fragment = new ItemFragment();  
                Bundle args = new Bundle();  
                args.putString("arg", TITLE[position]);  
                fragment.setArguments(args);  
                return fragment;
            }
    
            @Override
            public CharSequence getPageTitle(int position) {
                return TITLE[position % TITLE.length];
            }
    
            @Override
            public int getCount() {
                return TITLE.length;
            }
        }

    This is an article reprinted!
  • 相关阅读:
    图像处理国际会议
    [2015更新]用Word2007写CSDN博客
    【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结
    奇异秀App:奇异秀秀奇异,用大头视频来拜年
    通俗讲解傅里叶级数
    LIBSVM的使用方法
    VC6.0的工程设置解读Project--Settings
    HOG:从理论到OpenCV实践
    如何在 Kaggle 首战中进入前 10%
    linux学习(2)
  • 原文地址:https://www.cnblogs.com/Lt-Java13/p/4402526.html
Copyright © 2020-2023  润新知