使用FrameLayout xml

时间:2018-02-05 20:42:09

标签: android xml button mobile imagebutton

我是Android新手。

我正在玩风景视图。我在屏幕中央有文字。我在文本正下方有两个按钮(False和True),然后我试图在屏幕的最左下角有一个上一个图像按钮,在屏幕的最右下方有一个下一个图像按钮。

问题是,对于FrameLayout中的多个布局,我无法将下一个和上一个按钮分开并位于屏幕底部的对角。

如何修改XML gravity-layout属性来执行此操作?我不停地让左边的两个图像按钮都贴在旁边。

Current Screen

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/question_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:padding="24dp" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/true_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/true_button" />

        <Button
            android:id="@+id/false_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/false_button" />
    </LinearLayout>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:padding="24dp" />

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

        <ImageButton
            android:id="@+id/prev_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/arrow_left"
            android:layout_gravity="left|bottom"
            android:contentDescription="@string/prev_button" />

        <ImageButton
            android:id="@+id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right|bottom"
            android:contentDescription="@string/next_button"
            android:src="@drawable/arrow_right" />

    </LinearLayout>
</FrameLayout>

1 个答案:

答案 0 :(得分:0)

ImageButtonLinearLayout的孩子。如果您未在某些子LinearLayout上使用属性android:layout_weight,则View永远不会使用所有可用空间。我不会在这里解释如何执行此操作,因为性能最好放弃LinearLayout并让ImageButton成为FrameLayout的子项:

</FrameLayout>

   <!-- other Views like before ... -->

   <ImageButton
        android:id="@+id/prev_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/arrow_left"
        android:layout_gravity="left|bottom"
        android:contentDescription="@string/prev_button" />

    <ImageButton
        android:id="@+id/next_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|bottom"
        android:contentDescription="@string/next_button"
        android:src="@drawable/arrow_right" />

</FrameLayout>