1

TabViewがあり、最初のタブに2ページのImageButton(たとえばbuttonsPage1buttonsPage2 )を表示するViewFlipperがあります。

横向きの場合、画像ボタンのページをスクロール可能にする必要があるため、buttonsPage1にScrollViewを追加し、buttonsPage2に別のScrollViewを追加しようまし。StackOverflowErrorが発生します。

次に、pageButtons1と2からScrollViewを抑制し、ViewFlipperをScrollViewに含めようとしました。同じStackOverflowErrorが発生しました。

ViewFlipperを完全に削除すると、アプリケーションは期待どおりに実行され、エラーは発生しません。横向きの場合にのみスクロールが必要です

誰か、この問題を解決するために私に手を貸してくれませんか?

4

1 に答える 1

1

StackOverflowErrorが発生します。

スタックトレースに、UIの描画に関連していると思われる多数の内部Androidメソッドがリストされている場合、UIは複雑すぎます。hierarchyviewerおよびエミュレータを使用して、アクティビティのView/ViewGroupツリーを表示し、レイヤーを削除する方法を見つけます。たとえば、がTabWidgetを保持していない場合、タブに含まれるアクティビティを指定するためにViewFlipperを使用すると、タブのコンテンツとして使用するだけでなく、階層に複数のレイヤーが追加されます。IntentViewViews

私の一般的な経験則は、ルートから最長のブランチまでを測定して、ビュー階層を1桁の深さに保つようにすることです。15レイヤーに到達するまでに、ほぼ確実にどこかでクラッシュするでしょう。

ただし、StackOverflowエラーがUIの描画に関連していないように思われる場合は、この質問の編集としてスタックトレースを投稿する必要があります。

于 2010-06-11T11:30:03.527 に答える