Android的布局。流体布局和固定布局

时间:2012-08-17 21:53:45

标签: android android-layout android-widget

我要开发一个需要使用类似布局显示数据的Android应用程序。 我需要屏幕的两个部分:

  • 流体高度因设备分辨率而异的布局
  • 以固定尺寸显示内容的第二种布局

怎么做?我使用了relativelayout和linearlayout,但我还没有找到解决方案。 你能帮帮我吗?

Image representing my layout wireframe

2 个答案:

答案 0 :(得分:6)

<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="wrap_content"
        android:layout_above="@+id/fixedlayout"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:orientation="vertical"
        android:id="@+id/fluidlayout" >
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:orientation="vertical"
        android:id="@+id/fixedlayout" >
    </LinearLayout>

</RelativeLayout>

使用LinearLayout

的更有效的解决方案
<LinearLayout 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="0dp"
        android:layout_weight="1" >
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp" >
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:3)

LinearLayout机顶布局设为android:layout_weight="1"(高度为0dp),将layout_height置于固定值或android:layout_height="wrap_content"

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

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#FF0000" />

    <View
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#00FF00" />

</LinearLayout>