[英]Android - How to programmatically set the button style in a Linearlayout?
[英]Android: Set style programmatically to custom button
我有一個自定義視圖,擴展了Button。 我只想將此視圖設置為belove樣式。
<style name="MultipleButtonStyle" parent="android:Widget.Material.Light.Spinner.Underlined">
<item name="android:textColor">@android:color/black</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
</style>
為了能夠以編程方式設置樣式,我嘗試了一些方法。 但是他們沒有為我工作。
第一種方法是在自定義按鈕的構造函數中使用樣式,如下所示:
public class SpinnerButton extends AppCompatButton{
public SpinnerButton (Context context) {
super(context, null, R.style.MultipleButtonStyle);
}
}
第二種方法是使用setTextAppearance
方法。 這對我也不起作用。
if (Build.VERSION.SDK_INT < 23) {
super.setTextAppearance(getContext(), R.style.MultipleButtonStyle );
} else {
super.setTextAppearance(R.style.MultipleButtonStyle);
}
您的構造函數看起來不錯,您是否還要覆蓋其他實例(例如,使用AttributeSet
,從XML擴展時會調用它)? 檢查此有關的問題View
小號構造函數和一些造型
第二種方法是不正確的,因為樣式的parent
是整個Spinner.Underlined
的樣式,不僅是TextAppearance
。 在這種情況下,您應該擴展@android:style/TextAppearance.Medium
(或其他)。 如果您選擇這種方式,那么請記住API23中不推薦使用的setTextAppearance方法,並且您可以使用一些幫助程序而不檢查操作系統版本:
TextViewCompat.setTextAppearance(textView, android.R.style.TextAppearance_Medium);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.