Saya juga menemui masalah, dan saya menemukan cara untuk mengatur gaya secara pemrograman. Mungkin Anda semua membutuhkannya, Jadi saya perbarui di sana.
Param ketiga konstruktor View menerima jenis attr dalam tema Anda sebagai kode sumber di bawah ini:
public TextView(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.textViewStyle);
}
Jadi, Anda harus melewati jenis R.attr. ** daripada R.style. **
Dalam kode saya, saya melakukan langkah-langkah berikut:
Pertama, sesuaikan attr kustom untuk digunakan oleh tema di attr.xml.
<attr name="radio_button_style" format="reference" />
Kedua, spesifikkan gaya Anda di tema yang digunakan di style.xml.
<style name="AppTheme" parent="android:Theme.Translucent">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="radio_button_style">@style/radioButtonStyle</item>
</style>
<style name="radioButtonStyle" parent="@android:style/Widget.CompoundButton.RadioButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">64dp</item>
<item name="android:background">#000</item>
<item name="android:button">@null</item>
<item name="android:gravity">center</item>
<item name="android:saveEnabled">false</item>
<item name="android:textColor">@drawable/option_text_color</item>
<item name="android:textSize">9sp</item>
</style>
Pada akhirnya, gunakan itu!
RadioButton radioButton = new RadioButton(mContext, null, R.attr.radio_button_style);
tampilan yang dibuat secara terprogram akan menggunakan gaya yang ditentukan dalam tema Anda.
Anda dapat mencoba, dan berharap ini dapat bekerja untuk Anda dengan sempurna.