布置视图

时间:2015-02-05 12:10:18

标签: android view

我玩过但却找不到解决办法 我需要布局位于其父级的底部。 这是一个代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/output"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content" 
        android:text="@string/Q1"
        android:padding="16dp"
        />
    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:orientation="horizontal"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/true_button"
            android:text="@string/true_button_text"
            />
        <Button
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:id="@+id/false_button"
            android:text="@string/false_button_text"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_gravity="bottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        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:contentDescription="Back"
        />
    <ImageButton
        android:id="@+id/next_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/arrow_right"
        android:contentDescription="Next"
        />
    </LinearLayout>

</LinearLayout>

我需要最后两个 ImageButton 位于底部 属性 android:layout_gravity =“bottom”没有帮助 有什么建议吗?

4 个答案:

答案 0 :(得分:2)

在这种情况下使用RelativeLayout是最好的方法但是如果你不想切换到RelativeLayout,并且想要坚持使用LinearLayout,你可以指定&#39; android:layout_weight =&#34; 1&#34; &#39;线性布局正好位于包含&#34;图像按钮&#34;的线性布局上方。 警告:虽然通过这种方式您可以按下底部的图像按钮,但这将填充屏幕的其余部分,其布局位于其上方(在这种情况下,包含&#34;按钮&#34;)。
注意:这种方法非常适用于需要在包含列表的屏幕底部放置布局(包含按钮或任何内容)的情况。

编辑:让我感到震惊的是你甚至可以在包含图像按钮的那个上方放置一个空的linearLayout并设置属性&#39; android:layout_weight =&#34; 1&#34; &#39;在这个新添加的布局中。这样,即使按钮也不能全屏显示。

答案 1 :(得分:1)

试试这个布局:

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/output"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="16dp"
            android:text="QI" />

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

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

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

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

        <ImageButton
            android:id="@+id/prev_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="Back"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:id="@+id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="Next"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

</RelativeLayout>

希望这可以解决您的问题。

答案 2 :(得分:1)

您是否尝试使用relativeLayout作为父布局,还在包含按钮的linearlayout中设置layout_gravity属性?

答案 3 :(得分:1)

尝试使用线性布局weightweighSum属性

只需使用layout_weight来满足您的要求

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:weightSum="7" >

    <TextView
        android:id="@+id/output"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:gravity="bottom"
        android:padding="16dp"
        android:text="Q1" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal" >

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

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

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_gravity="bottom"
        android:layout_weight="3"
        android:gravity="bottom"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/prev_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="Back"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:id="@+id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="Next"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

</LinearLayout>
希望它能起作用.....