2013-05-02 55 views
0

在我的应用程序中,我曾在碎片中打开一个新的对话框。我正在使用FrgmentPagerAdapter。每当我从代码中打开一个新的活动,我得到一个空指针异常FragmentPagerAdapter vs FragmentStatePagerAdapter

java.lang.NullPointerException 
    at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576) 

很多搜​​索我来,我应该使用FragmentStatePagerAdapter而不是FragmentAdapter结束后。现在这已解决了空指针异常的问题。当使用片段适配器我曾在

@Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     super.setUserVisibleHint(isVisibleToUser); 
     if (isVisibleToUser) { 
        // 
     } 
    } 

编写的代码,知道什么时候该片段变得对用户可见。这个函数没有被调用。我究竟做错了什么 ?任何人都可以使用Fragment Pager或setUserVisibleHint未使用FragmentStatePagerAdapter调用空指针异常的解决方案吗?

回答

0

FragmentStatePagerAdapter有一个错误,它没有正确调用setUserVisibleHint。它被固定在此承诺:https://github.com/android/platform_frameworks_support/commit/bf7974e46b008ffa4a16c61386735c4817d343aa

确保您使用Android支持库的版本为11或更高的http://developer.android.com/tools/support-library/index.html

Android的支持库,版本11(2012年11月)

变化对于v4支持库:

修复了FragmentStatePagerAdapter中用户可见提示的问题。