安卓浮动视图(在其他视图上)

2022-09-02 02:02:33

我已经搞砸了几天了,希望这里有人能帮我一把。

我有一个简单的两列布局,左侧是带有按钮的导航栏,右侧是内容面板。当用户点击其中一个按钮(例如,向下点击第三个按钮)时,我希望有一个浮动视图与此按钮的右侧对齐,但浮动在内容窗格的顶部。这是一张图片来说明我的意思:Layout

我尝试过的所有内容都将浮动菜单推入导航栏或内容面板内部,这不是我想要的。有什么想法吗?以下是我到目前为止所拥有的:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:layout_alignParentLeft="true"
        android:id="@+id/navigation_bar"
    >
        <FrameLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.14"
        >
            <ImageButton 
                android:id="@+id/button1_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/icon"
                android:layout_gravity="center"
            />
        </FrameLayout>
        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.14"
        >
            <ImageButton 
                android:id="@+id/button2_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/icon"
                android:layout_gravity="center"
            />
        </FrameLayout>
    </LinearLayout>
    <FrameLayout
        android:id="@+id/content"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="0.14"
        android:layout_toRightOf="@id/navigation_bar"
    >
    </FrameLayout>
</RelativeLayout>

答案 1

“框架布局”允许您将一个视图与另一个视图重叠。我不确定将它们只包含一个子视图是否有意义,就像您在示例中所做的那样。尝试在最高级别使用 FrameLayout,其中“静态”视图作为第一个子元素,浮动菜单作为第二个子元素。

开发人员文档很好地概述了布局类型,它可能会帮助您入门。


答案 2

RelativeLayout是你想要的。
必须只有一个子项,因此通常仅用于其他布局稍后出现的占位符(例如活动的主框架)。
已弃用,不应使用。FrameLayoutAbsoluteLayout

RelativeLayout允许视图重叠,并允许执行几乎任何您想要的操作。


推荐