1

我有一个TabView,在它的第一个选项卡上我有一个ViewFlipper显示两页 ImageButtons(比如buttonsPage1buttonsPage2)。

在横向时,我需要图像按钮页面是可滚动的,所以我尝试在 buttonPage1 上添加一个ScrollView buttonsPage2上添加另一个。我得到一个 StackOverflowError。

然后我尝试从 pageButtons1 和 2 中抑制 ScrollView,并将 ViewFlipper 包含在 ScrollView 中。我得到了同样的 StackOverflowError。

如果我完全删除 ViewFlipper,应用程序会按预期运行,不会发生错误,只有横向时我需要滚动。

请问有人可以帮我解决这个问题吗?

4

1 回答 1

1

我得到一个 StackOverflowError。

如果您的堆栈跟踪列出了一大堆似乎与绘制 UI 相关的内部 Android 方法,那么您的 UI 太复杂了。使用hierarchyviewer您的模拟器查看您的活动的View/ViewGroup树,并找到删除层的方法。例如,如果您TabWidget不持有 a ViewFlipper,而是使用 anIntent来指定进入选项卡的活动,这会向您的View层次结构添加多个层,而不仅仅是Views用作选项卡的内容。

我的一般经验法则是尝试将我的视图层次结构保持在个位数的深度,从根到最长的分支进行测量。当你达到 15 层时,你几乎肯定会在某个地方崩溃。

但是,如果您的StackOverflow错误似乎与绘制 UI 无关,您需要发布堆栈跟踪作为对此问题的编辑。

于 2010-06-11T11:30:03.527 回答