错误描述:ViewPager: Recursive entry to executePendingTransactions
错误产生:
在Fragment里面添加Viewpager,Viewpager由多个Fragment组成,在viewpager的setAdapter时产生错误
解决方法:
public CustomFragmentPagerAdapter(android.support.v4.app.Fragment fragment)
{
super(fragment.getChildFragmentManager());
// write your code here
}
或者
FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(this.getChildFragmentManager());
其他方法(没有测试行不行,个人觉得 延时了viewPager的加载,滑动到某页面时,页面为空,需等待一段时间后再滑动回来才能正常显示)
<pre name="code" class="java" style="font-family: System; font-size: 18px; line-height: 1.3;">new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
adapter = new MainFragmentPagerAdapter(getFragmentManager(), fragments);
viewPager.setAdapter(adapter);
switchPager(0);
}
}, 100);
android.support.v4.app的Fragment中找不到getChildFragmentManager()方法
android.app.Fragment是可以直接使用getChildFragmentManager()方法的。android.support.v4.app.Fragment是不可以直接使用getChildFragmentManager()方法的。
那么怎么让android.support.v4.app.Fragment中使用;
解决:在项目中引用android-support-v13.jar包(此前只引用了android-support-v4.jar包),引用之后就可以使用了。此jar包可以在android sdk目录下extras/android/support/v13/android-support-v13.jar找到最新版。