上面的图片是我游戏的第一页。通常情况下,大的蓝色“按钮”背景图像不应该出现在那里。
我在布局文件中为我的按钮声明了我的自定义背景图像,如下所示:
<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上方。
大多数情况下,这个错误都不会发生。这似乎是在我启动/退出游戏并重复几次后随机发生的。
之前有人见过这样的事吗?如果是这样,请告诉我你是如何解决的?
答案 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。我使用相机拍摄这张照片,因为当时我不知道何时/如何重现这个错误。
再次感谢大家!没有你,我永远不会解决这个问题!
答案 1 :(得分:0)
我有同样的问题。在我的情况下,屏幕背景设置为
<color name="transparent">#00000000</color>
通过将其替换为来解决问题
<color name="transparent">@android:color/transparent</color>