1

我正在尝试使用 weight 属性设计我的界面,以便在不同的屏幕尺寸上获得漂亮的视图。基本上,我使用包含 3 个相对布局(页眉、内容和页脚)的垂直线性布局。我希望页眉和页脚各占 15%,内容占高度的 70%。但是,例如,当我在标题中设置一个小部件时,使用 alignParentBottom="true",一切都搞砸了。如果我使用带有 height="fill_parent" 的小部件,则会出现同样的问题,标题会填充所有 LinearLayout!

[编辑]:我使用 NoActionBar 主题,这似乎与我的问题有关,就好像我更改为默认主题一样,它解决了问题。但是,我真的需要隐藏 ActionBar ......

我有的: 布局混乱

我想做的事: 布局OK

问题是,例如,我想将日期放在标题的底部......

这是标题的简化代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:background="@drawable/fond_header"
    android:layout_weight=".2" >

    <TextView
        android:id="@+id/dateForm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:textSize="20sp"
        android:layout_marginBottom="2dp"
        android:background="@drawable/fond_date_header" />

</RelativeLayout>

这是页脚:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:background="@drawable/fond_header"
    android:layout_weight=".2" >

    <ImageButton
        android:id="@+id/retourBouton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/menu"
        android:src="@drawable/retour" />

</RelativeLayout>

这是完整界面的简化代码:

<?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"
    android:weightSum="1.0" >

    <include layout="@layout/header" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.6" >
    </RelativeLayout>

    <include layout="@layout/footer" />

</LinearLayout>

有任何想法吗?

预先感谢,

瓦伦丁

4

1 回答 1

0

我发现当权重在同一个布局文件中时更容易阅读,如下所示:

<?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"
              android:weightSum="1.0" >

    <include layout="@layout/header"
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:layout_weight=".2"/>

    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".6" >
    </RelativeLayout>

    <include layout="@layout/footer"
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:layout_weight=".2" />
</LinearLayout>

在您的页眉和页脚中,我删除了 layout_weight,并将高度/宽度设置为 match_parent。主布局将覆盖那些。

更新:添加页眉 + 页脚。

标题:

<?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"
                android:background="@android:color/darker_gray">
    <TextView
            android:id="@+id/dateForm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            android:textSize="20sp"
            android:text="Some Text"
            android:layout_marginBottom="2dp"
            android:textColor="@android:color/black"
            android:background="@android:color/white" />
</RelativeLayout>

页脚:

<?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"
                android:background="@android:color/darker_gray">

    <ImageButton
            android:id="@+id/retourBouton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            android:src="@drawable/ic_launcher"
            android:background="@android:color/holo_orange_light"
            android:contentDescription=""/>

</RelativeLayout>
于 2013-07-06T18:26:03.243 回答