Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
831 views
in Technique[技术] by (71.8m points)

android - Theme style for custom view

My app has several themes from which the user can chose (red, blue, green etc.) Every theme has a corresponding button style (RedTheme => RedButton). Now I have created a custom view which slightly extends "Button" and unfortunately this button does not get any style, except I use the "style" attribute in a layout.xml. I don’t use any additional attributes, I just want that my Button style is applied. I want to do something similar than:

 <item name="android:imageButtonStyle">@style/ImageButtonmyTimeRed</item>

I have already read many other posts like this one: How to: Define theme (style) item for custom widget but I’m not 100% sure if this solution fits for me since I don’t need any additional attributes.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I'm using the three parameter super constructor and pass the button style resource id. This works for all my custom themes. Thanks @pskink for pointing me into right direction.

public ClockButton(Context context, AttributeSet attrs) {
    super(context, attrs, R.attr.buttonStyle);
    ...
}

My theme looks like this:

<style name="LilaTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="buttonStyle">@style/ButtonmyTimeLila</item>
</style>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...