尝试编写一个游戏,使大部分屏幕都充满了我的GameView(自定义视图,来自View)
然后我希望在屏幕底部有一个区域用于留言等。在下面我只想在那里放一个按钮来说明问题。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<my.GameView
android:id="@+id/gameview"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Action1" />
</LinearLayout>
当此项运行时,按钮永远不会显示。如果我在GameView之前移动按钮,那么它可以使用屏幕顶部的按钮。因为它在上面GameView以某种方式抓住所有的屏幕。试图给GameView一个layout_weight为1,按钮为0(反之亦然)
我是否必须在GameView中实现onMeasure的东西(我还不能完全理解)或者我错过了什么?
答案 0 :(得分:2)
如果您的GameView的大小与屏幕一样大,那么您的Button将不会显示,因为使用“wrap_content”您可以让GameView获得尽可能多的LinearLayout所需的权限。
尝试这样的事情:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="+@id/myButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>
<my.GameView
android:id="@+id/gameview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/myButton"/>
</RelativeLayout>
希望这有帮助
答案 1 :(得分:1)
使用LinearLayout,只需给GameView一个layout_weight,不要为按钮添加任何权重。这应该工作。
如果它仍然不起作用,那么也可以使用0px作为GameView layout_height,例如:
<my.GameView
android:id="@+id/gameview"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="1"/>