簡體   English   中英

Android:以編程方式將樣式設置為自定義按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM