使用AppCompat并使用min sdk版本21,我尝试使用ChipDrawable在TextEdit中的电子邮件地址列表中使用,并且我使用以下方式创建了ChipDrawable:
ChipDrawable chip = ChipDrawable.createFromResource(getApplicationContext(), R.xml.email_chip);
使用这个xml:
<?xml version="1.0" encoding="utf-8"?>
<chip xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:chipBackgroundColor="?colorAccent"
app:closeIconEnabled="true"
app:closeIconTint="@android:color/white" />
我的主题使用主题。材料组件。白天晚上。DarkActionBar
(我还尝试了主题、材质组件、DayNight、DarkActionBar、Bridge
)
但我总是会犯这样的错误:
The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
我尝试了我在stackoverflow上找到的所有东西,但没有多大帮助。
这是我的风格
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Mareu" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">
<!-- Primary brand color. -->
<item name="colorPrimary">#4E92DF</item>
<item name="colorPrimaryVariant">#3F7ABD</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>
这是我的一部分成绩
dependencies {
// Extra
implementation 'org.greenrobot:eventbus:3.1.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.google.android.material:material:1.2.1'
// Compat
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
// TU TI
testImplementation 'org.hamcrest:java-hamcrest:2.0.0.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
您肯定在您的应用程序中使用视图绑定,并且您正在使用
getLayoutInflater()
试着从活动中而不是应用中获取你的充气器,只需使用
(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)
问题在这里:
ChipDrawable chip = ChipDrawable.createFromResource(getApplicationContext(),
ApplicationContext
没有你的应用主题
您需要传递的是活动
,而不是应用程序上下文。
我在使用TextInputLayout实现材质设计时遇到了问题,我知道解决方案是让您的活动主题继承材质组件主题之一,但这会给我的大多数应用程序主题带来这样的变化,并且需要更多时间来重构它。我想要的是仅针对应用程序上的特定TextInputLayout进行材质设计。 这就是我试过的 错误:
我正在尝试使用这个图书馆https://github.com/jaiselrahman/FilePicker.当我使用以下代码启动活动时,我得到一个异常。 解决此错误的方法是使用以下主题。AppCompat,我已经有了,但仍然得到相同的错误。
我试图做一个MaterialAlertDialog,但无论发生什么,我都会出现以下错误 我使用一个自定义主题作为我的主要活动主题,它是MaterialComponents的父级 将主题更改为AppCompat没有任何帮助,也不是真正正确的做法。我正在按照Material IO的解释进行实施https://material.io/develop/android/components/dialog/
以下是我的依赖关系 我的布局。xml 上面的代码对我来说工作正常 但是当我更新
我最近离开了主题。AppCompat到主题。MaterialComponents,但我不懂如何组织颜色。 例如,为什么按钮采用橙色背景颜色,但cardview的背景不采用橙色? 有人能给我解释一下关于这些变量的更多信息吗 有任何官方文件吗?
今天我尝试了新的MaterialComponents。他们的安装的一部分是,你需要改变你的应用程序的父级来继承它们。MaterialComponents。所以我这样做是因为我想使用底部导航与更好的涟漪。但在那之后,几乎所有应用程序中的按钮都变得蓬松了。 我应该怎么做才能恢复到以前的状态(右边的图像)?