为什么复选框中的框不可见



创建此样式后:

<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"

是否可以在代码中设置主题?我想通过样式设置文本大小,因为我使用不同分辨率的布局(大,超大,小尺寸)

相关内容

  • 没有找到相关文章