我有一个 TabView ,在第一个标签上我有一个 ViewFlipper ,显示两页ImageButtons (比如 buttonsPage1 和 buttonsPage2 )。
当处于横向时,我需要图像按钮页面可滚动,所以我尝试在 buttonsPage1 上添加 ScrollView ,在 buttonsPage2上添加另一个 。我得到一个StackOverflowError。
然后我尝试从pageButtons1和2中抑制ScrollView并在ScrollView中包含ViewFlipper。我得到了相同的StackOverflowError。
如果我完全删除ViewFlipper,应用程序会按预期运行,不会发生错误,只有我 DO 在横向时才需要滚动。
请有人帮我解决这个问题吗?
答案 0 :(得分:1)
我收到了StackOverflowError。
如果您的堆栈跟踪列出了一大堆内部Android方法,这些方法似乎与绘制UI有关,那么您的UI太复杂了。使用hierarchyviewer
和您的模拟器查看您的活动的View
/ ViewGroup
树,并找到删除图层的方法。例如,如果您的TabWidget
没有ViewFlipper
,而是使用Intent
来指定标签中的活动,则会为您的{{1}添加多个图层层次结构不仅仅是使用View
作为标签的内容。
我的一般经验法则是尝试将视图层次结构保持为单个数字深度,从根到最长的分支进行测量。当你达到15层时,你几乎肯定会在某个地方崩溃。
如果您的Views
错误似乎与绘制您的用户界面无关,则需要发布堆栈跟踪作为此问题的修改。