创建此样式后:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/offer_text_background</item>
<item name="colorPrimaryDark">@color/app_background</item>
<item name="android:checkboxStyle">@style/settingsNotificationCategory</item>
</style>
<style name="settingsNotificationCategory">
<item name="android:textSize">30sp</item>
</style>
我的复选框正在删除:
隐形盒子
如果没有此样式:
可见框
我需要在 kotlin 中动态创建 chceckbox:
var checkBox = CheckBox(this)
checkBox.text = category
checkBox.setTextColor(resources.getColor(R.color.customText))
checkBox.isChecked = true
notificationCategoryLayout.addView(checkBox)
发生了什么事?
我试过了:
var checkBox = CheckBox(this, null, R.style.settingsNotificationCategory)
checkBox.text = category
checkBox.setTextColor(resources.getColor(R.color.customText))
checkBox.isChecked = true
notificationCategoryLayout.addView(checkBox)
但效果是一样的...
感谢您的帮助
复选框中只包含 textSize 的样式,因此它会影响复选框的样式 您可以做 2 件事:
首先只需以编程方式设置文本大小:
checkBox.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
或者将样式调整为如下所示:
<style name="settingsNotificationCategory" parent="Widget.AppCompat.CompoundButton.CheckBox">
<item name="android:textSize">30sp</item>
</style>
继承复选框的基本样式
但是当我在布局中创建checbox时:
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test"
android:textColor="@color/customText"
android:theme="@style/settingsNotificationCategory"/>
这是在没有的情况下工作的
parent="Widget.AppCompat.CompoundButton.CheckBox"
是否可以在代码中设置主题?我想通过样式设置文本大小,因为我使用不同分辨率的布局(大,超大,小尺寸)