ITu*_*nko 9 android android-cardview
我的问题类似于" 如何将CardView属性放入样式中 ",但我需要更深入.
我正在使用AppCompat主题,我的样式看起来像
style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/toolbar_color</item>
<item name="android:listViewStyle">@style/CustomListView</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我为CardView创建了单独的样式
<style name="CustomCardView" parent="CardView">
<item name="cardBackgroundColor">@color/card_background</item>
<item name="cardCornerRadius">@dimen/card_corner</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我可以把它贴在主要风格上吗?
public View(Context context, AttributeSet attrs, int defStyleAttr)
Run Code Online (Sandbox Code Playgroud)
@param defStyleAttr当前主题中的一个属性,它包含对为视图提供默认值的样式资源的引用.可以为0以查找默认值.
所以你必须这样做
attrs.xml
<attr name="myCardViewStyle"/>
Run Code Online (Sandbox Code Playgroud)
styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="myCardViewStyle">@style/CustomCardView</item>
</style>
<style name="CustomCardView" parent="CardView">
<item name="cardBackgroundColor">@android:color/holo_red_dark</item>
</style>
Run Code Online (Sandbox Code Playgroud)
MyCardView.java
public MyCardView(Context context, AttributeSet attrs) {
this(context, attrs, R.attr.myCardViewStyle);
}
public MyCardView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
Run Code Online (Sandbox Code Playgroud)
而已.
| 归档时间: |
|
| 查看次数: |
2027 次 |
| 最近记录: |