Android:嵌套线性布局错误

时间:2015-08-12 00:42:06

标签: android android-layout

我试图在屏幕的上半部分创建一排三个图像(均匀间隔垂直方向)作为测试。出于某种原因,android:layout_height =“0dp”给了我一个错误,说它会使视图不可见。这是对的,当然,我看不到一件事。为什么会这样?我将重量改为1,那么为什么不扩大占用可用空间呢?谢谢!

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">





<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="vertical">

    <ImageView
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:scaleType="centerCrop"
    android:src="@drawable/arches_utah"/>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:scaleType="centerCrop"
        android:src="@drawable/blue_sea_mountains"/>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:scaleType="centerCrop"
        android:src="@drawable/china_jungle"/>

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="vertical">

</LinearLayout>

3 个答案:

答案 0 :(得分:1)

元素上的layout_weight适用于所述元素的父元素。由于您的父元素具有水平方向,因此您只能使用与layout_weight配对的layout_width。如果您的根LinearLayoutvertical,那么您可以将layout_height设置为0dp并改为使用layout_weight

根据您的问题判断,您应该在第一个孩子LinearLayout内的三个元素上设置权重和身高。

答案 1 :(得分:0)

需要在与父母方向相同的轴上指定权重属性。由于您的父级LinearLayout具有水平方向,因此weight属性适用于宽度,因此您需要layout_height="wrap_content"上的layout_width="0dp"LinearLayout

问题出在你的2 LinearLayouts

之间

答案 2 :(得分:0)

您尚未关闭父级线性布局,布局宽度与体重相关而不是高度......您也可以使用此类//app/components/positive-validation-component.js export default BaseValidationComponent.extend({ validate(value) { return value > 0; } }) ......

weightSum