奇怪的布局问题。 (请参阅附图)

时间:2010-09-29 13:39:40

标签: android layout button surfaceview

alt text

上面的图片是我游戏的第一页。通常情况下,大的蓝色“按钮”背景图像不应该出现在那里。

我在布局文件中为我的按钮声明了我的自定义背景图像,如下所示:

<Button android:id="@+id/id_button_startgame"
                             android:layout_width="wrap_content"
                             android:layout_height="48dp"
                             android:layout_weight="1"
                             android:textSize="26sp"
                             android:text="@string/start_game"
                             android:textColor="@color/solid_red"
                             android:background="@drawable/button_bg"

                             />

这里是drawable文件夹中的button_bg.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/button01_focused" /> 
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/button01_pressed" /> 
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/button01_pressed" /> 
    <item android:drawable="@drawable/button01_idle" /> 
</selector>

如您所见,附图。下面的三个按钮是正常情况。我在我的应用程序中随处使用它们。但有时屏幕中心的那个出现了。这个大按钮无法按下或任何东西。它只是在我的游戏上盘旋。我可以开始游戏,但显然无法看到内容,因为这个大蓝色的东西涵盖了所有。

我可以通过多次启动/退出我的游戏来重现这个错误。

我想要包含更多信息。但不知道我应该给你什么信息。我使用FrameLayout将UI放在SurfaceView上方。

大多数情况下,这个错误都不会发生。这似乎是在我启动/退出游戏并重复几次后随机发生的。

之前有人见过这样的事吗?如果是这样,请告诉我你是如何解决的?

2 个答案:

答案 0 :(得分:1)

问题解决了。谢谢大家。

解决方案:“不要在布局上使用透明背景”

你的答案结合起来帮助我解决了这个问题。

好的,首先。我找到了100%重现错误的方法。

我还有另一项活动,即“暂停游戏”活动,该活动具有半透明背景,并会在启动时悬停在所有内容上。

重现错误: 1.启动“暂停”活动。 2.滑开键盘。 3.此错误将出现在“暂停”活动后面。

@Orsol - 是的我使用透明背景作为包含这些按钮的布局

<LinearLayout android:id="@+id/bottom_ui_container"
                android:orientation="vertical"
                android:background="@drawable/transparent_background"
                android:gravity="bottom"
                 android:layout_width="match_parent"
                android:layout_height="match_parent">

                    <LinearLayout android:id="@+id/title_button_container"
                        android:orientation="horizontal"
                         android:background="@drawable/transparent_background"
                        android:gravity="center"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:visibility="gone">

这2个布局是让3个按钮在底部水平对齐,就像SS一样。仍然不明白为什么我的'按钮背景'在我滑开键盘后成为布局的背景......

@mbanzon和Cristian - 感谢您的提示! =)下次遇到问题我喜欢和hierarchyviewer一起玩! BTW。我使用相机拍摄这张照片,因为当时我不知道何时/如何重现这个错误。

@Octavian Damiean和CaseyB - 感谢您的帮助! =)我现在不会发布我的布局,因为它已经解决了。

再次感谢大家!没有你,我永远不会解决这个问题!

答案 1 :(得分:0)

我有同样的问题。在我的情况下,屏幕背景设置为

 <color name="transparent">#00000000</color>
通过将其替换为

来解决问题
<color name="transparent">@android:color/transparent</color>