1

我想在屏幕上创建一个包含 2 个元素的活动,一个在底部,一个固定大小,一个在上面,一个必须填满屏幕。

所需布局

我如何在布局中做到这一点?

谢谢

4

8 回答 8

3

用于layout_weight="1"第一个元素,并将layout_height="0dp"线性布局用作包含 2 个元素的父元素。

于 2013-09-26T12:01:28.793 回答
1

或者你可以这样做,

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_height="wrap_content"
       android:orientation="horizontal"
       android:layout_above="@+id/ll1"
 >
</LinearLayout>

<LinearLayout
    android:id="@+id/ll1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:layout_alignParentBottom="true"

    android:orientation="horizontal"
    >
</LinearLayout>

于 2013-09-26T12:03:57.617 回答
1

使用以下代码:

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="@string/hello_world" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="test" />



</LinearLayout>
于 2013-09-26T12:06:13.970 回答
1

将此添加到第一个元素:

  android:layout_weight="0.8"

第二个

android:layout_weight="0.2"
于 2013-09-26T12:06:57.647 回答
1

您可以使用相对布局,例如...以下示例

<//you are second element
    android:id="@+id/ui_radiogroup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:clickable="false"
    android:orientation="horizontal" >
<///you are second element>

<//you are First element
    android:id="@+id/ui_pager"
    android:layout_width="wrap_content"
    android:layout_above="@id/ui_radiogroup"
    android:layout_height="wrap_content"
    android:scrollbars="horizontal" />

其他选项使用线性布局根据您的要求将 android:layout_weight 分配给每个元素

于 2013-09-26T12:08:22.007 回答
1

试试这个,

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

<TextView
    android:id="@+id/footertext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="center"
    android:text="Footer" />

<TextView
    android:id="@+id/centertext"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/footertext"
    android:gravity="center"
    android:text="center" />

于 2013-09-26T12:11:29.130 回答
1

这是完整的技巧:

  • 用 aRelativeLayout包裹你的两件物品,
  • 穿上layout_alignParentBottom="true"你的底部物品
  • 在你layout_above="@+id/your_bottom_item_id"的顶级物品上

这是一个完整的工作示例,您可以 cpy/paste :

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

    <LinearLayout 
        android:id="@+id/top_item"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_above="@+id/bottom_layout">
    </LinearLayout>

    <LinearLayout 
        android:id="@+id/bottom_item"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="vertical"
        android:layout_alignParentBottom="true">
    </LinearLayout>

</RelativeLayout>
于 2013-09-26T12:13:39.033 回答
1

只需将 layout_weight="1" 用于第一个元素,布局高度应为 match_parent。

于 2013-09-26T12:17:49.277 回答