ConstraintLayout约束太宽

时间:2017-07-03 05:35:41

标签: android android-layout android-constraintlayout

我正在尝试更多地习惯ConstraintLayout,看看它有多么有用,可以避免嵌套视图。我在FrameLayout下面有两个LinearLayout,它们被限制在彼此的顶部/底部,如下所示:

enter image description here

我限制了这两个(第二个约束到父底部),以便横向布局相应地调整。但是,这些线性布局之间的间隙太宽,因为它分布在整个垂直视图上。有没有办法可以缩短这个差距,同时避免将它们嵌套到父LinearLayout中?

我的XML:

<LinearLayout
        android:id="@+id/dropbox_upload_btn"
        android:layout_width="306dp"
        android:layout_height="35dp"
        android:gravity="center"
        android:background="@android:color/background_light"
        app:layout_constraintBottom_toTopOf="@+id/box_upload_btn"
        app:layout_constraintTop_toBottomOf="@+id/imageFrameLayout"
        android:layout_marginLeft="45dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginRight="45dp"
        app:layout_constraintRight_toRightOf="parent"
        android:elevation="2dp"
        app:layout_constraintVertical_bias="0.22">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:src="@drawable/dropbox_android"
            android:layout_marginStart="15dp"
            android:layout_weight="0.35"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/dropbox_upload"
            android:layout_weight="2.43"/>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/box_upload_btn"
        android:layout_width="306dp"
        android:layout_height="35dp"
        android:gravity="center"
        android:background="@android:color/background_light"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/dropbox_upload_btn"
        android:layout_marginLeft="45dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginRight="45dp"
        app:layout_constraintRight_toRightOf="parent"
        android:elevation="2dp"
        app:layout_constraintVertical_bias="0.076">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:src="@drawable/box_logo"
            android:layout_marginStart="15dp"
            android:layout_weight="0.35"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/box_upload"
            android:layout_weight="2.43"/>

    </LinearLayout>

2 个答案:

答案 0 :(得分:0)

删除这些行。

app:layout_constraintBottom_toTopOf="@+id/box_upload_btn" app:layout_constraintTop_toBottomOf="@+id/dropbox_upload_btn"

然后尝试减少保证金。

答案 1 :(得分:0)

看起来你在垂直链中有这两个视图。此配置的默认值是CHAIN_SPREAD的链样式,它将为您提供间隙。将以下内容添加到链的顶视图中。

layout_constraintVertical_chainStyle="CHAIN_PACKED"

然后,您可以使用边距或垂直偏差来控制间距。

我希望这会有所帮助。