如何在FrameLayout中安排元素?

时间:2014-01-14 09:46:08

标签: android android-framelayout

我在Android应用上工作,并使用FrameLayout作为视图。问题是设计问题。在视图内部,我有另一个FrameLayout和一个LinearLayout,它位于底部视图中。但问题是,当我的FrameLayout高于父级时,FrameLayout的最后一部分位于LinearLayout之下,在这种情况下我想要的是,我的FrameLayout视图占用的所有部分都少于LinearLayout的高度。

以下是截图: enter image description here

这是我的代码:

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

<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</FrameLayout>

<LinearLayout
    android:id="@+id/bottom_menu"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_gravity="bottom"
    android:background="@drawable/menu_background"
    android:paddingTop="8dp" >
    <TextView
        android:id="@+id/currentOffersMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:drawableTop="@drawable/products"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size" />

    <TextView
        android:id="@+id/receiptStatusMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_marginTop="16dp"
        android:layout_weight="1"
        android:drawableTop="@drawable/receipt"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size" />

    <TextView
        android:id="@+id/photographReceiptMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:drawableTop="@drawable/camera"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size"
        android:layout_marginTop="20dp" />

    <TextView
        android:id="@+id/userAccountMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:drawableTop="@drawable/account"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size" />

    <TextView
        android:id="@+id/howItWorksMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:drawableTop="@drawable/information"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size" />

</LinearLayout>

someoane可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

如果content_frame必须始终高于LinearLayout,那么不要在LinearLayoutRelativeLayout父母中惩罚他们?像这样:

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

<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</FrameLayout>

<LinearLayout
    android:id="@+id/bottom_menu"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_gravity="bottom"
    android:background="@drawable/menu_background"
    android:paddingTop="8dp" >
    <TextView
        android:id="@+id/currentOffersMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:drawableTop="@drawable/products"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size" />

    <TextView
        android:id="@+id/receiptStatusMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_marginTop="16dp"
        android:layout_weight="1"
        android:drawableTop="@drawable/receipt"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size" />

    <TextView
        android:id="@+id/photographReceiptMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:drawableTop="@drawable/camera"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size"
        android:layout_marginTop="20dp" />

    <TextView
        android:id="@+id/userAccountMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:drawableTop="@drawable/account"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size" />

    <TextView
        android:id="@+id/howItWorksMenu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:drawableTop="@drawable/information"
        android:drawablePadding="4dp"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:textSize="@dimen/bottom_menu_text_size" />
    </LinearLayout>

<!-- Close the parent layout -->
</LinearLayout>