我有一个带有2个文本按钮的ConstraintLayout
容器。都设置android:ellipsize="end"
和android:maxLines="1"
。
以下图表描述了我要完成的工作。如果第一个按钮的文本较长,则应占用最多60%的空间,第二个按钮可以在必要时占用其余空间。
答案 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)中提供