zoukankan      html  css  js  c++  java
  • 【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!
  • 相关阅读:
    Jenkins获取运行job的用户名(在构建历史中展示构建人)
    Android -tool工具UIautomatorviewer提示“不能让屏幕黑屏”
    转: 谈谈关于内存的一些心得体会
    IP地址,子网掩码划分(转)
    重定向子进程控制台程序的输入输出
    正则表达式(1)
    Log4Net使用指南(转)
    使用wireshark抓本机之间的包(转)
    VirtualBox开发环境的搭建详解(转)
    SxsTrace工具使用方法(转)
  • 原文地址:https://www.cnblogs.com/Lt-Java13/p/4402526.html
Copyright © 2011-2022 走看看