How to add CardView attributes to app theme?

前端 未结 1 1401
深忆病人
深忆病人 2021-01-04 21:04

My question is similar to \"How to put a CardView attribute in a style\", but I need to go deeper.

I\'m using AppCompat theme, and my styles looks like



        
相关标签:
1条回答
  • 2021-01-04 21:19
    public View(Context context, AttributeSet attrs, int defStyleAttr)
    

    @param defStyleAttr An attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults.

    So you have to do

    attrs.xml

    <attr name="myCardViewStyle"/>
    

    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>
    

    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);
    }
    

    That's it.

    0 讨论(0)
提交回复
热议问题