java - Android:从Material 1.0升级会引起问题

标签 java android gradle material-design material-components-android

我最近从 Material 1.0升级到 Material 1.1,以便能够使用新的TabLayoutMediator

Gradle :

implementation 'com.google.android.material:material:1.1.0'

算了。但是,自升级以来,我现在面临怪异的UI问题。

[

我在图片中包括了四个问题。问题是:
  • MaterialButtons具有黑色边框。升级之前,他们没有国界。
  • Material FloatingActionsButton突然带有黑色图标。升级之前,图标为白色。
  • 导航图标也为黑色。升级之前,这些图标为灰色。
  • 文本字段变形到无法识别的程度

  • 现在,我发现奇怪的是,如此小的更新会引起如此奇怪的问题。还奇怪的是,我尝试了一些手动修复程序-例如更改FloatingActionButton的色调以再次获得白色图标-但这些手动修复程序似乎无效。

    此问题的原因是什么,如何解决?我已经考虑过回到 Material 1.0 ....

    更新

    我的应用主题:
       <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
            <item name="android:textViewStyle">@style/GlobalTextViewStyle</item>
       </style>
    
       <style name="AppTheme.NoActionBar">
            <item name="windowNoTitle">true</item>
            <item name="windowActionBar">false</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowContentOverlay">@null</item>
        </style>
    
    

    我的MaterialButton:
     <com.google.android.material.button.MaterialButton
                    style="@style/Widget.AppCompat.Button.Borderless"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:layout_marginEnd="16dp"
                    android:layout_marginBottom="20dp"
                    android:paddingTop="12dp"
                    android:paddingBottom="12dp"
                    android:textAllCaps="false"
                    android:textColor="#FFF"
                    android:textSize="15sp"
                    app:backgroundTint="#2196F3"
                    app:cornerRadius="6dp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.5"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintWidth_max="400dp"
                    app:strokeWidth="2dp" />
    
    

    更新#2

    到目前为止,我已通过手动更改颜色来修复所有问题。似乎 Material 1.1中的默认值已更改。但是,文本字段仍然会引起问题。这是我用来添加它们的代码:

    TextInputLayout textInputLayout = new TextInputLayout(view.getContext());
    textInputLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
    textInputLayout.setPadding(0, 0, 0, 40);
    
    TextInputEditText editText = new TextInputEditText(view.getContext());
    editText.setHint(getVerboseName());
    textInputLayout.addView(editText);
    linearLayout.addView(textInputLayout);
    

    最佳答案

    MaterialButtons have a black border. Before the upgrade they had no border.



    在您的MaterialButton中:
     <com.google.android.material.button.MaterialButton
                    style="@style/Widget.AppCompat.Button.Borderless"
                    app:strokeWidth="2dp" />
    
  • app:strokeWidth="2dp":删除
  • 您正在使用AppCompat主题。将其更改为Widget.MaterialComponents.Button
  • 关于java - Android:从Material 1.0升级会引起问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60119980/

    相关文章:

    java - JTable 和 Filereader 实现

    java - 适用于 Android 蓝牙流式传输的缓冲阅读器

    java - JPA/Hibernate 级联删除同时删除 ManyToOne 关系

    android - 如何在没有事先可怕的 READ_LOGS 权限的情况下收集 native 堆栈跟踪?

    java - 如何在 gradle 中使用 GetOpt 和 LongOpt?

    gradle - Gradle每次刷新时都会再次下载所有依赖项

    java - 带有排序和限制的 mongodb 命令

    android - Google Play 服务位置 API 有时会返回错误的位置

    android-studio - 错误 :Execution failed for task ':app:transformClassesWithDexForOfficialRelease' . > 无法在空对象上调用方法 getMainManifest()

    android - Cocos2dx 安卓 : Get data from file(assets/*) failed