开发过程中,对于通用控件的属性我们习惯在styles.xml中抽取出来,然后在用到的地方通过:
style="@style/Your.Style"
引入,可以简化代码。
在Material Design风格的app里面大量使用到CarView,但是CardView的某些属性在style中默认是不支持的,:
<style name="CardView.Style" > <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_margin">8dp</item> <item name="android:cardBackgroundColor">@android:color/white</item> <item name="android:cardCornerRadius">2dp</item> </style>
上面这部分代码中: cardBackgroundColor 和 cardCornerRadius 编译会报错。<style name="CardView.Style" parent="CardView"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_margin">8dp</item> <item name="cardBackgroundColor">@android:color/white</item> <item name="cardCornerRadius">2dp</item> </style>
让CardView.Style 继承 CardView 可以解决此问题参考:http://stackoverflow.com/questions/27341832/how-to-put-a-cardview-attribute-in-a-style