如何在一个布局中对齐2个视图,因此最多一个位于顶部,另一个位于最底部

时间:2017-02-20 15:18:37

标签: android xml android-layout xamarin xamarin.android

我的视图中有线性布局

里面有2个视图,一个"按钮"和一个" frameLayout"

制造引力:" top"对于父布局,将2个内部视图放在最顶层

制造重力:"底部"对于父布局,将2个内部视图放在最底部

如何设置最底部的按钮," frameLayout"在最顶端

我目前的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFF"
    android:minWidth="25px"
    android:minHeight="25px"
    android:gravity="bottom">
    <FrameLayout
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/frameLayout1"
        android:layout_gravity="top">
        <ListView
            android:minWidth="25px"
            android:minHeight="25px"
            android:id="@+id/notifiers"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>
    <Button
        android:text="+"
        android:id="@+id/newTask"
        android:background="#13F"
        android:textSize="20pt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom" />
</LinearLayout>

3 个答案:

答案 0 :(得分:3)

查看此代码我刚刚编辑了您的代码,它可以完美地运行!

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFF"
    android:minWidth="25px"
    android:minHeight="25px"
    android:gravity="bottom">
    <FrameLayout
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_weight="9"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@+id/frameLayout1"
        android:layout_gravity="top">
        <ListView
            android:minWidth="25px"
            android:minHeight="25px"
            android:id="@+id/notifiers"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>
    <FrameLayout
        android:layout_gravity="center_horizontal"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="0dp">
    <Button

        android:text="+"
        android:id="@+id/newTask"
        android:background="#13F"
        android:textSize="20pt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom" />
    </FrameLayout>
</LinearLayout>

答案 1 :(得分:2)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFF"
    android:minWidth="25px"
    android:minHeight="25px"
    android:gravity="bottom">
    <FrameLayout
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/frameLayout1"
        android:layout_gravity="top">
        <ListView
            android:minWidth="25px"
            android:minHeight="25px"
            android:id="@+id/notifiers"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>
    <Button
        android:text="+"
        android:id="@+id/newTask"
        android:background="#13F"
        android:textSize="20pt"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom" />
</RelativeLayout>

为您的目的使用相对布局,它允许更多地控制相对位置

答案 2 :(得分:0)

您可以使用体重来达到您想要的效果。
添加android:layout_weight="1"
在FrameLayout中