约束布局按钮带有权重的文字

时间:2020-07-17 02:29:32

标签: android android-constraintlayout

我有一个带有2个文本按钮的ConstraintLayout容器。都设置android:ellipsize="end"android:maxLines="1"

以下图表描述了我要完成的工作。如果第一个按钮的文本较长,则应占用最多60%的空间,第二个按钮可以在必要时占用其余空间。

buttons

2 个答案:

答案 0 :(得分:1)

不是直接答案,但这可能会对您有所帮助。

这可以通过<IonItem> <IonLabel position="stacked">End date</IonLabel> <IonDatetime id="enddate" name="enddate"></IonDatetime> </IonItem> 来实现,但是已经不建议使用。幸运的是,可以使用PercentRelativeLayout使用以下命令对其进行复制。

ConstraintLayout

有关详细指南,请查看此documentation

答案 1 :(得分:0)

使用Guideline是答案:

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:maxLines="1"
            app:layout_constrainedWidth="true"
            app:layout_constraintEnd_toStartOf="@id/actionButtonEndGuideline"
            app:layout_constraintHorizontal_bias="0.001"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintWidth_default="wrap"
            tools:text="Button 1 text" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/actionButtonEndGuideline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.6" />

        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:maxLines="1"
            app:layout_constrainedWidth="true"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0"
            app:layout_constraintStart_toEndOf="@id/button1"
            app:layout_constraintTop_toTopOf="@id/button1"
            app:layout_constraintWidth_default="wrap"
            tools:text="Button 2 text" />

    </androidx.constraintlayout.widget.ConstraintLayout>

请注意第一个按钮上的app:layout_constraintHorizontal_bias="0.001"。我花了很多时间尝试使它与app:layout_constraintHorizontal_bias="0"一起使用,直到遇到这个答案layout_constrainedWidth not working properly

这是在编写此版本(1.1.3)时,最新的稳定版Constraintlayout依赖版本中的错误,并且显然该修复程序已在beta(2.0.0-beta8)中提供