我有以下 xml:
<LinearLayout
android:id="@+id/ll_two_state"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
app:cardCornerRadius="5dp"
app:strokeWidth="1dp">
<com.google.android.material.button.MaterialButton
android:id="@+id/filterA"
style="@style/customToggleButtonStyle"
app:cornerRadius="0dp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="läkdsvksd"
android:textSelectHandleLeft="@drawable/rounded_corner"
android:ellipsize="none"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/filterB"
style="@style/customToggleButtonStyle"
app:cornerRadius="0dp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:ellipsize="none"
android:textSelectHandleRight="@drawable/rounded_corner"
android:text="öskdjnvksjnbvsnfjknvlsnd fvlnsdkjnvsdklövölkjvndfökljnvljkdfnlvjknlvjkn" />
</LinearLayout>
它为我提供了两个高度相等的按钮作为切换按钮。
问题是,无论添加 maxLine、line 或 minLine 标签,使用 MaterialButtonToggleGroup 强制按钮到一行都无法获得相同的结果。
使用 MaterialButtonToggleGroup 的原因是在处理更改并获得圆角时代码更清晰。
有解决办法吗?还是我应该使用不同类型的视图?
我终于得到了我所期望的。 这个问题有两个bug:
因此我对 LinearLayout 的修复可以用于 MaterialButtonToggleGroup,如下所示:
<com.google.android.material.button.MaterialButtonToggleGroup
android:id="@+id/toggle_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:gravity="center"
app:cardCornerRadius="5dp"
app:selectionRequired="true"
app:singleSelection="true"
app:strokeWidth="1dp">
<com.google.android.material.button.MaterialButton
android:id="@+id/filterA"
style="@style/customToggleButtonStyle"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="State A" />
<com.google.android.material.button.MaterialButton
android:id="@+id/filterB"
style="@style/customToggleButtonStyle"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="State B" />
</com.google.android.material.button.MaterialButtonToggleGroup>
并将以下几行添加到我的代码中:
binding.filterA.maxLines = 2
binding.filterB.maxLines = 2
现在看起来像这样: