【问题标题】:ConstraintLayout constraints are too wideConstraintLayout 约束太宽
【发布时间】:2017-07-03 05:35:41
【问题描述】:

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

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

【问题讨论】:

    标签: android android-layout android-constraintlayout


    【解决方案1】:

    删除这些行。

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

    然后尝试减少边距。

    【讨论】:

      【解决方案2】:

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

      layout_constraintVertical_chainStyle="CHAIN_PACKED"
      

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

      我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2016-11-04
        • 1970-01-01
        • 2021-08-21
        • 2020-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多