Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在不继承材质组件主题的情况下使用MaterialButtonToggleGroup_Android_Material Design - Fatal编程技术网

Android 如何在不继承材质组件主题的情况下使用MaterialButtonToggleGroup

Android 如何在不继承材质组件主题的情况下使用MaterialButtonToggleGroup,android,material-design,Android,Material Design,我想创建materialbuttonogglegroup而不让我的AppTheme继承Theme.MaterialComponents.Light.darkaActionBar。因此,我尝试继承主题.MaterialComponents.Light.darkaActionBar.Bridge,但是材质按钮组合完全消失了,在视图中没有显示任何内容。当我删除.Bridge时,它确实起作用。如何正确使用MaterialButtonToggleGroup,而不从材质组件主题继承 styles.xml &

我想创建
materialbuttonogglegroup
而不让我的AppTheme继承
Theme.MaterialComponents.Light.darkaActionBar
。因此,我尝试继承
主题.MaterialComponents.Light.darkaActionBar.Bridge
,但是
材质按钮组合
完全消失了,在视图中没有显示任何内容。当我删除
.Bridge
时,它确实起作用。如何正确使用
MaterialButtonToggleGroup
,而不从材质组件主题继承

styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="borderlessButtonStyle">@style/Widget.App.Button.TextButton</item>
        <item name="materialButtonOutlinedStyle">@style/Widget.App.Button.OutlinedButton</item>
        <item name="materialButtonStyle">@style/Widget.App.Button</item>
    </style>

    <style name="Widget.App.Button.TextButton" parent="Widget.MaterialComponents.Button.TextButton">
        <item name="materialThemeOverlay">@style/ThemeOverlay.App.Button.TextButton</item>
        <item name="android:textAppearance">@style/TextAppearance.App.Button</item>
        <item name="shapeAppearance">@style/ShapeAppearance.App.SmallComponent</item>
    </style>

    <style name="Widget.App.Button.OutlinedButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
        <item name="materialThemeOverlay">@style/ThemeOverlay.App.Button.TextButton</item>
        <item name="android:textAppearance">@style/TextAppearance.App.Button</item>
        <item name="shapeAppearance">@style/ShapeAppearance.App.SmallComponent</item>
    </style>

    <style name="Widget.App.Button" parent="Widget.MaterialComponents.Button">
        <item name="materialThemeOverlay">@style/ThemeOverlay.App.Button</item>
        <item name="android:textAppearance">@style/TextAppearance.App.Button</item>
        <item name="shapeAppearance">@style/ShapeAppearance.App.SmallComponent</item>
    </style>

    <style name="ThemeOverlay.App.Button.TextButton" parent="">
        <item name="colorPrimary">@color/colorPrimary</item>
    </style>

    <style name="ThemeOverlay.App.Button" parent="">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorOnPrimary">#ffffff</item>
    </style>

    <style name="TextAppearance.App.Button" parent="TextAppearance.MaterialComponents.Button">
        <item name="fontFamily">serif</item>
        <item name="android:fontFamily">serif</item>
    </style>

    <style name="ShapeAppearance.App.SmallComponent" parent="ShapeAppearance.MaterialComponents.SmallComponent">
        <item name="cornerFamily">cut</item>
        <item name="cornerSize">4dp</item>
    </style>

</resources>

@颜色/原色
@颜色/原色暗
@颜色/颜色重音
@style/Widget.App.Button.TextButton
@样式/Widget.App.Button.OutlinedButton
@style/Widget.App.Button
@style/ThemeOverlay.App.Button.TextButton
@style/TextAppearance.App.Button
@style/ShapeAppearance.App.SmallComponent
@style/ThemeOverlay.App.Button.TextButton
@style/TextAppearance.App.Button
@style/ShapeAppearance.App.SmallComponent
@样式/ThemeOverlay.App.Button
@style/TextAppearance.App.Button
@style/ShapeAppearance.App.SmallComponent
@颜色/原色
@颜色/原色
#ffffff
衬线
衬线
切
4dp
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <com.google.android.material.button.MaterialButtonToggleGroup
        android:id="@+id/toggleButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 1"
            style="@style/Widget.App.Button.OutlinedButton"
            />
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 2"
            style="@style/Widget.App.Button.OutlinedButton"
            />
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 3"
            style="@style/Widget.App.Button.OutlinedButton"
            />
    </com.google.android.material.button.MaterialButtonToggleGroup>

</LinearLayout>


我忽略了错误日志中说
MaterialButtonToggleGroup
中的按钮必须是
MaterialButton
。当不继承材质组件主题时,我必须显式使用
MaterialButton
类,而不是
Button
类。

您使用的是哪个版本?@GabrieleMariotti我尝试过1.1.0和1.2.0-alpha-6