在约束布局中同时应用左右约束时,如何将布局向左对齐?

Jay*_*abu 4 android android-layout android-linearlayout android-constraintlayout

这是我想要设计的布局:

在此输入图像描述

正如您从图像中看到的,我希望线性布局仅限于项目 A 和项目 B,并且我希望它向左对齐。我找不到任何方法在约束布局中实现这一点。当我使用这个时:

<LinearLayout
        android:id="@+id/linear_layout"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/ui_size_xs">
Run Code Online (Sandbox Code Playgroud)

线性布局移至中间。当我使用这个时:

<LinearLayout
        android:id="@+id/linear_layout"
        android:layout_width="0dp"
        android:layout_height="@dimen/ui_size_xs">
Run Code Online (Sandbox Code Playgroud)

线性布局占据了项目 A 和 B 之间的整个区域。 我想要线性布局wrap-content,但也应该像图像中那样向左对齐。我能找到的唯一解决方案是创建一个新布局作为此线性布局的父级,并赋予0dp新的父级线性布局和wrap-conent此布局子布局。我不想那样做。有没有什么方法可以在不创建任何额外布局的情况下实现这一目标?

小智 7

正如官方文档中提到的,

遇到这种相反的约束时,默认的做法是将小部件居中;但您可以使用偏差属性调整定位以偏向一侧:

  • 布局约束水平偏差
  • 布局约束垂直偏差

尝试以下方法,看看是否有效

<LinearLayout
        android:id="@+id/linear_layout"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/ui_size_xs"
        app:layout_constraintHorizontal_bias="0.3"
        app:layout_constraintLeft_toRightOf="item1id"
        app:layout_constraintRight_toLeft="item2id">

// try different horizontal bias values to meet your need
Run Code Online (Sandbox Code Playgroud)