所以我试图将材质主题应用于新创建的应用。根据android文档:
"要在Android应用中使用材料设计,请遵循材料设计规范中描述的指南,并使用Android 5.0(API级别21)中提供的新组件和功能。"
我所做的是创建一个新项目:
minSdkVersion 23 targetSdkVersion 25
然后我进入styles.xml并将样式更改为:
<style name="AppTheme" parent="@android:style/Theme.Material">
然后我尝试在具有以下配置的模拟设备上构建:
nexus 5 / api 25。
应用程序崩溃:java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)。
我不明白为什么?避风港满足了所需的条件?根据文档,我的最小目标sdk是正确的,我正在构建的设备也有正确的sdk。
我缺少什么?
答案 0 :(得分:1)
您使用的是AppCompatActivity
而不是框架Activity
因此,您需要使用的主题应该将AppCompat主题作为其父级,例如
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
</style>
答案 1 :(得分:0)
要使用素材主题,请将const validate = (prop) => {
// validation etc...
// if validation error
// return false & request mainFunction() to also return
return true;
}
const taskOne = () => validate(one);
const taskTwo = () => validate(two);
const mainFunction = () => taskOne() && taskTwo() && taskThree() /* && ... */;
mainFunction();
(或您应用主题的MainActivity
)作为activity
的子类,而不是Activity
或{{1} }。
您还应该检查this。