我的活动中的顶级布局是一个framelayout。我已经完成,调试和测试了这个应用程序,它在我的g1和各种模拟器上的工作方式完全一样。但是在运行2.1+的3.7英寸显示器上,一些图像视图包含在线性布局中 定期不可见。我知道他们在那里是因为你可以在应用程序中触摸并拖动它们。所以我以某种方式假设 他们已经得到了SurfaceView,它是应用程序的主要组件。即使在LinearLayout之前的xml中声明了SurfaceView,显然也是这样。但是,LinearLayout中的ImageViews以编程方式添加到onCreate()的末尾。
Framelayout会堆叠添加到其中的所有内容,一个堆叠在另一个上面 - 如果它们比屏幕小,并且彼此分开,则只能看到多个框架布局的子项。< / p>
奇怪的是,有时候图像视图是可见的 - 它是随机的。无论如何,我一直试图在linearlayout上使用framelayout.bringChildToFront(View v)来解决这个问题而没有成功。
我想知道是否有人对这种行为如何随机有所了解,以及我应该如何编码这些图像视图 为了防止这种情况发生,以及为什么问题只出现在3.7英寸和3.2英寸的屏幕上(实际上,两个3.2英寸的屏幕都是htc,所以供应商也可能是因素)。
[edit]实际上,我已经确定这是一个2.2问题,而不是屏幕尺寸(甚至是供应商)问题。无法确保使用SurfaceView将ImageView添加到framelayout 在它中将出现在surfaceview的顶部。我在相应的onDraw()方法中运行了一些测试,并且图像视图是'可见'(0),并且对于drawable的alpha没有任何作用,它们也在ondraw()中。 [/ edit]
任何见解都会受到欢迎。
Ken T。
答案 0 :(得分:0)
我必须在SurfaceView的doDraw()方法中绘制drawable,我不得不更改drawable的文件名。我认为这是恶意代码的某种情况。我不得不废弃ImageViews并将我的触摸处理代码转移到其他地方。