2013-09-06 4 views
2

ViewPager를 사용하여 4 개의 다른 조각을 표시하고 있습니다. 작업 표시 줄을 사용하여 탐색 탭을 표시합니다. 그것은 그 다음과 같습니다ViewPager에서 ActionBar - 부분적으로 보이는 탭을 클릭하면 앱이 깨집니다.

enter image description here

내 문제는 탭의 초기 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 및 GetItem 메서드를 확장하는 사용자 지정 클래스를 처음 3 개만 호출합니다.

처음에는 4 개의 조각을 모두로드해야합니까? 또는 마지막 조각의로드를 올바르게 처리하는 방법?

보기 호출기와 그 조각 주위에 코드가 상당히 많아서 제 질문에 얼마나 많은 코드가 필요한지 잘 모르겠습니다. 여기에 전체 코드를 게시해야하는지 알려주십시오. 콜백 중 하나

+1

부분적으로 표시되는 탭의 조각에 대한 로더를 어떻게 설정합니까? – Luksprog

+0

각 조각에있는 목록의 로더를 의미합니까? 그것은 내 조각 클래스에서 생성됩니다. – Szymon

+0

부분적으로 보이는 탭에 해당하는 조각의 onActivityCreated() 콜백에서 로더를 시작하십시오. – Luksprog

답변

2

시작 Loader (onActivityCreated()을 같은) 당신은 매우 빠른 속도로 데이터를 반환하는 Loader이 위치에 투입하지 않는지 확인 있도록 onCreateView()가 호출 될 때 실행이 곳의보기 Fragment이 아직 작성되지 않았습니다 (귀하의 경우 문제).

관련 문제