gpt4 book ai didi

android - FrameLayout 的子项在某些设备上不可点击

转载 作者:太空狗 更新时间:2023-10-29 13:35:23 26 4
gpt4 key购买 nike

我设计了一个菜单,它由几个不同的 LinearLayouts 中的几个按钮组成,所有按钮都放置在 FrameLayout 中的动画 GLSurfaceView 上。当用户单击界面中的按钮时,我将当前布局的可见性设置为 GONE,然后再进行下一个布局 VISIBLE 当用户选择一个级别时,游戏开始并所有布局都是 GONE(除了屏幕右侧的控制栏,但它不包含在 FrameLayout 中)

在大多数手机上,菜单就像一个魅力,但我在 Xperia Ray 上进行了快速测试,结果发现我无法去任何地方,因为按钮不会点击。我在我的大多数 onClick 监听器中设置了 Log.d 标记,在这种情况下,它们没有显示在 Logcat 中,因此听众似乎根本没有触发。我还注意到 GLSurfaceView 没有从它自己的 TouchEventListener 返回任何东西。即使在顶部菜单上通过点击 GLSurfaceView 触发的功能被禁用,我通常仍会在 Logcat 中收到一条消息。

我认为这可能与我使用 FrameLayout 的方式有关。 documentation说它应该只有一个 child ,但我读到的另一篇关于 android 开发人员的文章通过在 FrameLayout 内的 ImageViews 上显示文本来演示字幕图像。

最后,我还要说一下,我已经在模拟器中进行了测试,我发现 android v2.3 和 android v4 都显示与射线相同的行为。目前,除了可以完美运行我的应用程序的 android v2.2 之外,这些是我唯一确定的。我犹豫要不要相信模拟器上的测试结果。

我个人很难看,因为没有继续的错误消息,但是有人可以提出解决方案吗?

最佳答案

我找到了解决方案。

事实证明,我有一个杂散的 ScrollView 在我的布局中徘徊,它在 z 顺序中位于我的根布局之上,并且默认情况下可见。我没有切换此 View 的可见性,而是针对它的子布局这样做。糟糕。

在我测试过的大多数设备上,杂散的 ScrollView 没有影响我的应用程序的功能,可能是因为空布局允许点击它后面的按钮。然而事实证明,一些设备,例如 Xperia Ray,对于点击是否可以通过布局向下传递(可能是性能决定)更加严格。

ScrollView 是布局的必需部分,所以我不能直接删除它。相反,我将 android:visibilty 属性赋予了 ScrollView,这样它就会一直处于 GONE 状态,直到界面需要它并且它不会阻止用户单击按钮.

关于android - FrameLayout 的子项在某些设备上不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com