Android layout 从Theme.AppCompat切换到Theme.MaterialComponents将显示白色空白标签&;按钮

Android layout 从Theme.AppCompat切换到Theme.MaterialComponents将显示白色空白标签&;按钮,android-layout,material-ui,material-design,android-textinputlayout,material-components-android,Android Layout,Material Ui,Material Design,Android Textinputlayout,Material Components Android,我使用的是设计1.1.0 对于带有Viewpager2的选项卡。我将其更新为'1.2.0-alpha05'库版本。它在单个模块中运行良好,但在另一个模块中崩溃,我在该模块中开发了自定义材料,设计了TextInputLayout。我将主题从'theme.AppCompat.Light.NoActionBar'更改为theme.MaterialComponents.Light.NoActionBar,并修复了崩溃。在修复崩溃和升级主题后,它将向我显示白色浮动标签、按钮、指示器等。任何人请指导我哪里做

我使用的是设计
1.1.0

对于带有
Viewpager2
的选项卡。我将其更新为
'1.2.0-alpha05'
库版本。它在单个模块中运行良好,但在另一个模块中崩溃,我在该模块中开发了自定义材料,设计了TextInputLayout。我将主题从
'theme.AppCompat.Light.NoActionBar'
更改为
theme.MaterialComponents.Light.NoActionBar
,并修复了崩溃。在修复崩溃和升级主题后,它将向我显示白色浮动标签、按钮、指示器等。任何人请指导我哪里做错了

GITHUb发行票据链接:

Style.xml(旧文件)

@颜色/白色 @颜色/原色\u新 @颜色/a465661 使用AppCompact with
parent=“Widget.MaterialComponents.TextInputLayout.OutlineBox.Dense”
更新到1.2.0-alpha05后,旧文件与材料发生冲突,但样式背景现在不起作用

图书馆

.XML(设计)

这行代码在使用appCompact主题时导致崩溃

阅读关于UI更新的主题。根据本文档,我必须添加以下几个属性

    <!-- New MaterialComponents attributes. -->

    <item name="colorOnPrimary">@color/whitee</item>
    <item name="colorOnSecondary">@color/colorPrimary_New</item>
    <item name="colorOnSurface">@color/a465661</item>-->
    <item name="colorSurface">@color/a465661</item>-->
    <item name="colorOnBackground">#212121</item>-->
    <item name="android:colorBackground">@color/background</item>
    <item name="colorError">#F44336</item>-->
    <item name="colorOnError">#FFFFFF</item>

@彩色/白色
@颜色/原色\u新
@颜色/a465661-->
@颜色/a465661-->
#212121-->
@颜色/背景
#F44336-->
#FFFFFF
但是,我试着改变TextInputLayout的颜色,它工作正常,但按钮却不行。任何人请指导我如何处理新材料设计这一点


将白色原色更改为其他颜色,什么颜色与背景颜色不同。

我认为您需要查看两个库的主题强调颜色,或者通过改变它们的颜色,如果有人使用白色,将它们变成红色,您可能会从中得到线索。您使用的是哪种样式的按钮?@GabrieleMariotti更新了名为BtnCustomStyle的问题样式,用于按钮。@Atifabasi您的按钮样式应该扩展Widget.MaterialComponents.button,edittext光标、浮动标签和按钮上的白色效果如何@GabrieleMariottiI尝试将主按钮更改为黑色,这解决了我的InputLabel浮动标签问题,但之后开始显示黑色背景而不是绿色的按钮。所以,如果将颜色更改为绿色,它将以绿色显示标签,您已经修改了colorPrimary、colorPrimaryDark和colorAccent。试试其他颜色,因为Android基本上使用这种颜色作为视图的默认颜色。。它工作得很好。。我只是升级了材料设计库。
  <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/textInputLayout"
        style="@style/contentInputLayoutStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/_8dp"
        android:paddingStart="5dp"
        android:paddingLeft="5dp"
        app:helperTextEnabled="true"
        android:layout_marginLeft="@dimen/_8dp"
        android:layout_marginEnd="@dimen/_8dp"
        android:layout_marginRight="@dimen/_8dp"
        app:errorEnabled="false"
        app:layout_constraintBottom_toTopOf="@+id/errorTextView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:hint="@string/EnterMobileNumber">


        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/textInputEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="phone"
            android:gravity="start"
            android:textDirection="anyRtl"
            tools:text="0335510023"
            android:background="@null"
            android:paddingEnd="@dimen/inputFieldPadding_36dp"
            android:paddingRight="@dimen/inputFieldPadding_36dp" />

    </com.google.android.material.textfield.TextInputLayout>
 <style name="AppTheme"  parent="Theme.MaterialComponents.Light.NoActionBar" >
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/white</item>
            <item name="colorPrimaryDark">@color/green</item>
            <item name="colorAccent">@color/a465661</item>
        </style>

 <style name="contentInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
        <item name="boxStrokeColor">@color/border_stroke_grey</item>
        <item name="android:textColor">@color/black</item>
        <item name="android:textStyle">normal</item>
        <item name="errorTextAppearance">@style/error_label</item>
        <item name="counterOverflowTextAppearance">@style/AppTheme.TextFloatLabelAppearance</item>
        <item name="android:actionOverflowButtonStyle">@style/AppTheme.TextFloatLabelAppearance
        </item>
        <item name="hintTextAppearance">@style/text_label</item>
    </style>

 <style name="text_label" parent="TextAppearance.Design.Hint">
        <item name="android:textSize">@dimen/title_heading_12sp</item>
        <item name="colorControlNormal">@color/black</item>
        <item name="colorControlActivated">@color/black</item>
        <item name="colorControlHighlight">@color/black</item>
    </style>

    <style name="text_label_green" parent="TextAppearance.Design.Hint">
        <item name="android:textSize">@dimen/title_heading_12sp</item>
        <item name="colorControlNormal">@color/green_field</item>
        <item name="android:background">@null</item>
        <item name="colorControlActivated">@color/green_field</item>
        <item name="colorControlHighlight">@color/green_field</item>
    </style>

    <style name="AppTheme.TextFloatLabelAppearance" parent="text_label">
        <!-- Floating label appearance here -->
        <item name="android:textColor">@color/label_title_black</item>
        <item name="android:textSize">@dimen/title_heading_12sp</item>
        <item name="android:background">@android:color/transparent</item>
        <item name="colorControlNormal">@color/label_title_black</item>
        <item name="colorControlHighlight">@color/label_title_black</item>
        <item name="colorControlActivated">@color/label_title_black</item>

    </style>

  <style name="material_edit_text" parent="Widget.AppCompat.EditText">
        <item name="android:paddingStart">50dp</item>
        <item name="android:paddingLeft">50dp</item>
        <item name="android:background">@null</item>
        <item name="android:textSize">16sp</item>
    </style>

    <style name="error_label" parent="TextAppearance.Design.Hint">
        <item name="android:textSize">0sp</item>
        <item name="android:textColor">@color/red</item>
        <item name="android:visibility">gone</item>
    </style>

  <style name="BtnCustomStyle">
        <item name="android:background">@drawable/btn_confirm_selector</item>
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">15dp</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">46dp</item>
        <item name="android:layout_marginStart">10dp</item>
        <item name="android:layout_marginEnd">10dp</item>
        <item name="android:textAllCaps">false</item>
        <item name="android:foreground">android:attr/selectableItemBackground</item>
    </style>
   <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/white</item>
        <item name="colorPrimaryDark">@color/colorPrimary_New</item>
        <item name="colorAccent">@color/a465661</item>
        <item name="android:windowLayoutInDisplayCutoutMode">never</item>
    </style>
"Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
    <!-- New MaterialComponents attributes. -->

    <item name="colorOnPrimary">@color/whitee</item>
    <item name="colorOnSecondary">@color/colorPrimary_New</item>
    <item name="colorOnSurface">@color/a465661</item>-->
    <item name="colorSurface">@color/a465661</item>-->
    <item name="colorOnBackground">#212121</item>-->
    <item name="android:colorBackground">@color/background</item>
    <item name="colorError">#F44336</item>-->
    <item name="colorOnError">#FFFFFF</item>