3

ViewGroup をオーバーライドするクラスがあります。これがdispatchDrawの私の実装です:

@Override
protected void dispatchDraw(final Canvas canvas) {
    super.dispatchDraw(canvas);

    mViewBehind.drawShadow(mContent, canvas);
    mViewBehind.drawFade(mContent, canvas, getPercentOpen());
    mViewBehind.drawSelector(mContent, canvas, getPercentOpen());
}

ただし、次の StackOverflowError が発生することがあります。

01-25 09:20:38.569: E/AndroidRuntime(15480): FATAL EXCEPTION: main
01-25 09:20:38.569: E/AndroidRuntime(15480): java.lang.StackOverflowError
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.text.BoringLayout.draw(BoringLayout.java:365)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.widget.TextView.onDraw(TextView.java:4225)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6880)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.widget.AbsListView.dispatchDraw(AbsListView.java:1586)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.widget.GridView.dispatchDraw(GridView.java:1948)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6986)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.widget.AbsListView.draw(AbsListView.java:2967)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6986)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.widget.FrameLayout.draw(FrameLayout.java:357)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.widget.ScrollView.draw(ScrollView.java:1423)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.widget.FrameLayout.draw(FrameLayout.java:357)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at com.ui.library.slidingmenu2.CustomViewAbove.dispatchDraw(CustomViewAbove.java:931)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at com.ui.library.slidingmenu2.CustomViewAbove.dispatchDraw(CustomViewAbove.java:931)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at com.ui.library.slidingmenu2.CustomViewAbove.dispatchDraw(CustomViewAbove.java:931)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.View.draw(View.java:6883)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.widget.FrameLayout.draw(FrameLayout.java:357)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1921)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.ViewRoot.draw(ViewRoot.java:1528)
01-25 09:20:38.569: E/AndroidRuntime(15480):    at android.view.Vie

スタック トレースは、com.ui.library.slidingmenu2.CustomViewAbove.dispatchDraw(CustomViewAbove.java:931)(これはsuper.dispatchDraw(canvas)) が少なくとも 4 回呼び出されていることを示しています。

例外は、最初の Fragment に GridView が含まれている ViewPager を含む特定のアクティビティに戻ったときにのみ発生します。

(ところで、BoringLayoutとにかく何ですか?)

4

2 に答える 2

0

レイヤーが多すぎる必要があります。レイアウト レイヤーを減らしてみてください。

于 2013-07-11T09:36:19.683 に答える
0

BoringLayout は、1 行に収まるすべて左から右の文字で構成されるテキストの非常に単純な Layout 実装です。

于 2014-11-14T12:12:29.393 に答える