Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有ViewPager的ActionBar-单击部分可见选项卡会使应用程序崩溃_Android_Android Actionbar_Android Viewpager - Fatal编程技术网

Android 带有ViewPager的ActionBar-单击部分可见选项卡会使应用程序崩溃

Android 带有ViewPager的ActionBar-单击部分可见选项卡会使应用程序崩溃,android,android-actionbar,android-viewpager,Android,Android Actionbar,Android Viewpager,我正在使用ViewPager显示4个不同的片段。我使用操作栏显示导航选项卡。看起来是这样的: 我的问题是,最初3个选项卡完全可见,最后一个选项卡部分可见。单击前3个选项卡中的任何一个都可以,但当我单击最后一个选项卡时,应用程序崩溃: 09-06 13:35:01.825: E/AndroidRuntime(6676): FATAL EXCEPTION: main 09-06 13:35:01.825: E/AndroidRuntime(6676): java.lang.IllegalState

我正在使用ViewPager显示4个不同的片段。我使用操作栏显示导航选项卡。看起来是这样的:

我的问题是,最初3个选项卡完全可见,最后一个选项卡部分可见。单击前3个选项卡中的任何一个都可以,但当我单击最后一个选项卡时,应用程序崩溃:

09-06 13:35:01.825: E/AndroidRuntime(6676): FATAL EXCEPTION: main
09-06 13:35:01.825: E/AndroidRuntime(6676): java.lang.IllegalStateException: Content view not yet created
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.ListFragment.getListView(ListFragment.java:222)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.szymontrapp.englishverbs.DictionaryListFragment.onLoadFinished(DictionaryListFragment.java:200)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.szymontrapp.englishverbs.DictionaryListFragment.onLoadFinished(DictionaryListFragment.java:1)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.LoaderManagerImpl$LoaderInfo.callOnLoadFinished(LoaderManager.java:427)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.LoaderManagerImpl.initLoader(LoaderManager.java:562)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.szymontrapp.englishverbs.DictionaryListFragment.onCreate(DictionaryListFragment.java:94)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.Fragment.performCreate(Fragment.java:1455)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:823)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.Fragment.setUserVisibleHint(Fragment.java:819)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.app.FragmentPagerAdapter.setPrimaryItem(FragmentPagerAdapter.java:130)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.view.ViewPager.populate(ViewPager.java:1066)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:550)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:509)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:490)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.szymontrapp.englishverbs.DictionaryActivity$4.onTabSelected(DictionaryActivity.java:91)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.support.v7.app.ActionBarImplICS$TabWrapper.onTabSelected(ActionBarImplICS.java:454)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:587)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.android.internal.app.ActionBarImpl$TabImpl.select(ActionBarImpl.java:1084)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:532)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.view.View.performClick(View.java:4211)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.view.View$PerformClick.run(View.java:17267)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.os.Handler.handleCallback(Handler.java:615)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.os.Looper.loop(Looper.java:137)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at android.app.ActivityThread.main(ActivityThread.java:4898)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at java.lang.reflect.Method.invokeNative(Native Method)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at java.lang.reflect.Method.invoke(Method.java:511)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
09-06 13:35:01.825: E/AndroidRuntime(6676):     at dalvik.system.NativeStart.main(Native Method)
似乎最后一个片段最初没有加载。我使用一个自定义类扩展FragmentPageAdapter,并且只为前3个类调用GetItem方法

我应该先强制加载所有4个碎片吗?或者,如何正确处理最后一个片段的加载


浏览页面和那些片段有很多代码,我不确定回答我的问题需要多少代码。如果需要在此处发布完整的代码,请告诉我。

onCreateView()之后运行的其中一个回调(如
onActivityCreated()
)中启动
加载程序调用
,确保快速返回数据的
加载程序不会将您置于尚未创建片段视图的位置(您的问题).

如何为部分可见选项卡的片段设置加载器?您是指我在每个片段中的列表的加载器吗?它在我的片段类的onCreate中。尝试在片段的onActivityCreated()回调(对应于部分可见选项卡的回调)中启动加载程序。你给了我主意-我将它移动到onResume,它也可以工作!谢谢!onActivityCreated()也可以很好地工作。我如何接受你的回答?我不能,因为这只是一个评论。。。