我现在已经搞好了几天,希望有人可以帮我一把。
我有一个简单的双栏布局,左侧是带按钮的导航栏,右侧是内容面板。当用户点击其中一个按钮(例如,第三个按钮)时,我希望浮动视图与此按钮的右侧对齐,但浮动在内容窗格的顶部。这是一张图片来说明我的意思:
我试过的所有东西都会推动导航栏内部或内容面板内的浮动菜单,这不是我想要的。有任何想法吗?这基本上是我到目前为止所拥有的:
<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>
答案 0 :(得分:14)
FrameLayout允许您将视图与另一个视图重叠。我不确定让它们只有一个子视图是有意义的,就像你的例子中一样。尝试在最高级别使用FrameLayout,将“静态”视图作为第一个子元素,将浮动菜单作为第二个子元素。
developer documents可以很好地概述布局类型,它可能会帮助您入门。
答案 1 :(得分:-11)
RelativeLayout
就是你想要的
FrameLayout
必须只有一个孩子,因此通常只用于其他布局稍晚的占位符(例如活动的主框架)。
AbsoluteLayout
已弃用,不应使用。
RelativeLayout
允许视图重叠,并允许执行任何您想要的任何内容。