2012-11-14 5 views
1

나는 탭 호스트가 FragmentActivity 인 탭이 있습니다. 그 중 하나는 7 개의 뷰 시퀀스를 포함합니다. 나는 각각이 단편이라고 생각하지만, 단편 7에 도달하면 앱이 폭발합니다.조각의 StackOverflow 예외

11-14 13:50:33.640: I/dalvikvm(13823): threadid=1: stack overflow on call to Landroid/text/Layout;.draw:VLLLI 
11-14 13:50:33.640: I/dalvikvm(13823): method requires 288+20+60=368 bytes, fp is 0x4428a42c (300 left) 
11-14 13:50:33.640: I/dalvikvm(13823): expanding stack end (0x4428a300 to 0x4428a000) 
11-14 13:50:33.640: I/dalvikvm(13823): Shrank stack (to 0x4428a300, curFrame is 0x4428cc74) 
11-14 13:50:33.640: D/AndroidRuntime(13823): Shutting down VM 
11-14 13:50:33.640: W/dalvikvm(13823): threadid=1: thread exiting with uncaught exception (group=0x40015578) 
11-14 13:50:33.703: E/AndroidRuntime(13823): FATAL EXCEPTION: main 
11-14 13:50:33.703: E/AndroidRuntime(13823): java.lang.StackOverflowError 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.widget.TextView.onDraw(TextView.java:4229) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6933) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.buildDrawingCache(View.java:6695) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.onAnimationStart(ViewGroup.java:1259) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1505) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.View.draw(View.java:6936) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1904) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewRoot.draw(ViewRoot.java:1527) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewRoot.performTraversals(ViewRoot.java:1263) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.view.ViewRoot.handleMessage(ViewRoot.java:1865) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.os.Looper.loop(Looper.java:130) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at android.app.ActivityThread.main(ActivityThread.java:3687) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at java.lang.reflect.Method.invokeNative(Native Method) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at java.lang.reflect.Method.invoke(Method.java:507) 
11-14 13:50:33.703: E/AndroidRuntime(13823): at com. 
:이 오류가

MyFragment newFragment = new MyFragment(); 
    FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
    transaction.replace(R.id.publish_map_direction, newFragment); 
    transaction.addToBackStack(null); 
    transaction.commit(); 

입니다 :

enter image description here

나는 각 조각에서 계속 버튼을 누르면

enter image description here

나는 이런 식의 새로운 조각을 시작

내 앱을 다른 방식으로 구성해야합니까? ?

+0

나는 당신의 다이어그램만을 위해 upvoted. 하지만로드하는 동안 앱이 언제 충돌합니까? f1, f2 또는 f3 등? – Sam

+0

조각 7이 시작될 때 – SolArabehety

+0

게시물 f7의 레이아웃이 좋습니다. logcat에서 내 첫 번째 추측은 당신이 뭔가를하고 있다는 것입니다 : 부하 B, 부하 B,로드 B, ... – Sam

답변

1

예.

탭 호스트 내부에 조각 활동을 중첩하는 대신 조각 만 사용하는 것이 좋습니다. 저는 보통 탭 표시 줄을 만들고 그 아래에 프레임을 배치하여 조각을 넣습니다. 그러면 클릭 한 내용에 따라 조각을 바꿉니다. 그게 분명 도움이 될 것입니다. 왜냐하면 저는 당신이 너무 많은 일들을 동시에하고 있다고 생각하기 때문입니다.

+0

고마워요! 나는 파편을 나쁜 것으로 바꾸고 있었다. – SolArabehety