我使用像这样的材质切换按钮组
<com.google.android.material.button.MaterialButtonToggleGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:singleSelection="true">
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_topso"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:text="@string/topo" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_averages"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/average" />
</com.google.android.material.button.MaterialButtonToggleGroup>
但是在运行应用程序时,出现以下错误而崩溃:
java.lang.IllegalStateException: Attempted to get ShapeAppearanceModel from a MaterialButton which has an overwritten background.
at com.google.android.material.button.MaterialButton.getShapeAppearanceModel(MaterialButton.java:1169)
at com.google.android.material.button.MaterialButtonToggleGroup.addView(MaterialButtonToggleGroup.java:244)
at android.view.ViewGroup.addView(ViewGroup.java:3709)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
我无法解决!!如何解决此问题?
材料版本:“ 1.3.0-alpha03”
样式:
<style name="MaterialAppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:buttonStyle">@style/ButtonStyle</item>
<item name="android:background">@android:color/transparent</item>
<item name="floatingActionButtonStyle">@style/FloatingButtonStyle</item>
</style>
答案 0 :(得分:0)
您正在使用:
<com.google.android.material.button.MaterialButton
android:background="@drawable/about"
使用android:background
中的MaterialButton
,您将覆盖默认背景。这意味着MaterialButton
不会使用自己的MaterialShapeDrawable
作为背景(以及ShapeAppearanceModel
)。
这似乎是一个错误,但您可以解决,将android:background
中的MaterialButton
删除。