将小部件放在彼此的顶部

时间:2015-03-30 11:14:03

标签: android layout

我有一个相机小部件,它将是一个“背景”,在它的顶部,我想有一个图像和一个按钮。我应该使用什么布局将图像和按钮正确放置在相机小部件的顶部?

以下布局将相机小部件推离屏幕(只显示图像和按钮):

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <eu.livotov.labs.android.camview.CAMView
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:id="@+id/zxScanCamera"/>

    <ImageView
        android:src="@drawable/hud"
        android:scaleType="centerInside"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <Button
        style="@style/StdText"
        android:id="@+id/flashLight"
        android:layout_width="match_parent"
        android:text="@string/scan_flash_on"
        android:background="?android:attr/selectableItemBackground"/>

</FrameLayout>

3 个答案:

答案 0 :(得分:2)

使用RelativeLayout - 它使用其子项的定义顺序作为其Z顺序(在彼此之上)。 Firs声明你的CAMView然后(作为资源文件中的兄弟姐妹) - 按钮和图像视图。当然你应该考虑他们在屏幕上(在他们的父母内部)的相对位置,但简而言之 - 如果他们在x,y坐标中重叠,则每个下一个孩子都会被绘制在上一个孩子的“顶部”。

在你的情况下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <eu.livotov.labs.android.camview.CAMView
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        .../>

    <ImageView
        ...
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"/>

    <Button
        ...
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        />

</RelativeLayout>

使用android:layout_alignParent...属性将您的商品放在其父

答案 1 :(得分:0)

如果您想要对齐任何子视图,例如按钮应位于顶部和中间,那么最好去RelativeLayout

答案 2 :(得分:-2)

如果您使用约束布局,则列表下方的窗口小部件将出现在应用程序中所有其他窗口的上方。See this image例如,imageView1将出现在imageView2的顶部。 (从上方或顶部,我的意思是朝向用户或朝向屏幕外。imageView1会出现在imageView2上方,就像您将一张纸放在一张大纸上一样)