FrameLayout和LinearLayout,底部绘制按钮

时间:2013-04-19 19:30:53

标签: android xml layout

对此有很多不同的建议但是它们似乎都没有用(虽然我可能做错了)布局:重力等等。

我希望在屏幕底部绘制按钮,而不是在屏幕顶部的默认位置绘制按钮。我确信有一种简单的方法可以做到。

目前,按钮在顶部绘制

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:game_view="http://schemas.android.com/apk/res/pap.crowslanding"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<FrameLayout
    android:id="@+id/flayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@+id/button1"
    android:orientation="vertical" >

    <pap.crowslanding.GameView
        android:id="@+id/game_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        game_view:ballDiam="@dimen/ballDiam"
        game_view:cellWidth="@dimen/cellWidth"
        game_view:pixelHeight="@dimen/pixelHeight"
        game_view:pixelWidth="@dimen/pixelWidth" />

    <pap.crowslanding.MazeBall
        android:id="@+id/mazeball"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:visibility="invisible"
        game_view:ballDiam="@dimen/ballDiam"
        game_view:cellWidth="@dimen/cellWidth" />
</FrameLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:text="@string/right" >
    </Button>

    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/down" />
</LinearLayout>

2 个答案:

答案 0 :(得分:3)

父容器是RelativeLayout,因此您只需要将android:android:layout_alignParentBottom=true添加到LinearLayout并删除layout_gravity属性。

答案 1 :(得分:0)

您可以尝试以下方法:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:game_view="http://schemas.android.com/apk/res/pap.crowslanding"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<FrameLayout
    android:id="@+id/flayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/button1"
    android:orientation="vertical" >

    <pap.crowslanding.GameView
        android:id="@+id/game_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        game_view:ballDiam="@dimen/ballDiam"
        game_view:cellWidth="@dimen/cellWidth"
        game_view:pixelHeight="@dimen/pixelHeight"
        game_view:pixelWidth="@dimen/pixelWidth" />

    <pap.crowslanding.MazeBall
        android:id="@+id/mazeball"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="invisible"
        game_view:ballDiam="@dimen/ballDiam"
        game_view:cellWidth="@dimen/cellWidth" />
    </FrameLayout>
    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="@string/right" >
    </Button>

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="@string/down" />
</RelativeLayout> 

然后,您需要调整按钮,使它们不在彼此的顶部(android:layout_toRightOf="@+id/button_name"android:layout_toLeftOf=...)。我不知道你想要哪个左右。另外,您应该使用match_parent代替fill_parent。 API {8}中已弃用fill_parent(我认为它是8,但我知道它已被弃用)。