为什么观点掩盖了他们下面的东西,但不是上面的?

时间:2012-04-30 07:42:41

标签: android android-layout

我不确定为什么如果我在LinearLayout的顶部放置一个按钮,然后在它下方的视图中我可以看到按钮。但是,如果我将按钮放在视图下方,则视图会覆盖它。

例如,顶部的按钮一切都可见:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />


    <View
        android:id="@+id/view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

但如果您将按钮放在视图下方,则只能看到视图:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <View
        android:id="@+id/view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />


    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

这是为什么?如何才能获得一个视图,而不是将其下面的内容包裹起来?

2 个答案:

答案 0 :(得分:0)

  

如何才能获得视图,而不是将其下方的内容包裹起来?

给你View一个高度。在

<View
    android:id="@+id/view1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

标签定义不明确且无法呈现。看起来Android正在将其转变为

<View
    android:id="@+id/view1"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent" />

因此将Button推到窗外。

答案 1 :(得分:0)

它因为您的视图是自定义视图和所有布局/视图的根,例如LinaerLayout,相对布局,表格布局,绝对布局。所以chicld iew(在您的情况下线性布局不能对视图施加约束),以及您的自定义视图这里至今尚未决定它的宽度和高度如果你在某个类中自定义并在onMeasure中给出它的宽度和高度,那么在运行时按钮将会低于它。