我试图做一个MaterialAlertDialog,但无论发生什么,我都会出现以下错误
java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant).
at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:243)
at com.google.android.material.internal.ThemeEnforcement.checkAppCompatTheme(ThemeEnforcement.java:213)
at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:148)
at com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(ThemeEnforcement.java:76)
at com.google.android.material.dialog.MaterialDialogs.getDialogBackgroundInsets(MaterialDialogs.java:60)
at com.google.android.material.dialog.MaterialAlertDialogBuilder.<init>(MaterialAlertDialogBuilder.java:117)
at com.google.android.material.dialog.MaterialAlertDialogBuilder.<init>(MaterialAlertDialogBuilder.java:103)
at com.adamm.quem.MainActivity$1.onItemClick(MainActivity.java:118)
我使用一个自定义主题作为我的主要活动主题,它是MaterialComponents的父级
<style name="MainMaterialTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
将主题更改为AppCompat没有任何帮助,也不是真正正确的做法。我正在按照Material IO的解释进行实施https://material.io/develop/android/components/dialog/
我的代码:
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(getApplicationContext())
.setTitle("Title")
.setMessage("Message")
builder.show();
这个问题怎么解决?
您正在传入getApplicationContext()
并且应用程序上下文没有您的主题。将您的活动作为上下文传入:
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(MainActivity.this)
.setTitle("Title")
.setMessage("Message")
builder.show();
我正在尝试使用这个图书馆https://github.com/jaiselrahman/FilePicker.当我使用以下代码启动活动时,我得到一个异常。 解决此错误的方法是使用以下主题。AppCompat,我已经有了,但仍然得到相同的错误。
以下是我的依赖关系 我的布局。xml 上面的代码对我来说工作正常 但是当我更新
我在使用TextInputLayout实现材质设计时遇到了问题,我知道解决方案是让您的活动主题继承材质组件主题之一,但这会给我的大多数应用程序主题带来这样的变化,并且需要更多时间来重构它。我想要的是仅针对应用程序上的特定TextInputLayout进行材质设计。 这就是我试过的 错误:
使用AppCompat并使用min sdk版本21,我尝试使用ChipDrawable在TextEdit中的电子邮件地址列表中使用,并且我使用以下方式创建了ChipDrawable: 使用这个xml: 我的主题使用(我还尝试了) 但我总是会犯这样的错误: 我尝试了我在stackoverflow上找到的所有东西,但没有多大帮助。 这是我的风格 这是我的一部分成绩
标记的答案使我走上了正确的轨道。
最近我从支持库切换到com.google.android.Material:Material:1.0.0 但是现在我遇到了一个问题,在这个页面中有一个注释https://github.com/Material-Components/Material-Components-android/blob/master/docs/geting-started.md 注意:使用Material Compone