我的主要应用程序主题父主题是MaterialComponents主题。我更改了颜色,但材质组件(MaterialButton,InputLayout,EditText)未使用我的强调色(它们使用了某些蓝色,我声明的口音颜色是蓝绿色) 有什么问题如何处理主题化材料组件的最佳方法是什么?
我的主要主题:
<style name="AppTheme" parent="Theme.MaterialComponents">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
编辑: 将主题更改为Theme.MaterialComponents.Bridge不能解决该问题。
答案 0 :(得分:0)
从Theme.AppCompat
继承您的应用主题,例如:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
</style>
请注意,您会遇到深色或浅色主题,但是您需要扩展Theme.AppCompat
。
答案 1 :(得分:0)
尝试像这样更改您的styles.xml:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
如果可以,请告诉我
编辑:尝试点击此链接来设置材料组件https://medium.com/@pedromassango/android-material-design-components-setup-google-i-o18-part-1-8894f315b5e
答案 2 :(得分:0)
就我而言,问题是为特定API声明了不同样式的xml。我犯了一个错误,在测试时,在styles.xml之前应用了其他styles-v21.xml。 长话短说,请检查其他变体中是否没有错误。我宣布该变体错误。
答案 3 :(得分:0)
也许您应该尝试使用colorAccent的次要实例
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- Original AppCompat attributes. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorSecondary">@color/colorAccent</item>
</style>
这对我有用
答案 4 :(得分:0)
对于那些尝试使用从Theme.MaterialComponents.*
继承的主题的人,请记住不要使用常规的Button
类,而应该使用com.google.android.material.button.MaterialButton
。
代替:
<Button
(...)
style="@style/Widget.MaterialComponents.Button" />
请务必使用:
<com.google.android.material.button.MaterialButton
(...)
style="@style/Widget.MaterialComponents.Button" />
在那里。没什么可羞耻的。 :)