为什么复选框在复选框中不可见?

时间:2019-01-31 14:53:13

标签: java android checkbox kotlin styles

创建此样式后:

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

我的复选框中的框正在删除:

invisible boxes

没有这种样式:

visible boxes

我需要在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) 

但是效果是一样的...

感谢帮助

2 个答案:

答案 0 :(得分:1)

为复选框提供了仅包含textSize的样式,因此它将影响复选框的样式,您可以执行以下两项操作:

首先只需以编程方式设置文本大小:

checkBox.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);

或将您的样式调整为这样:

<style name="settingsNotificationCategory" parent="Widget.AppCompat.CompoundButton.CheckBox">
    <item name="android:textSize">30sp</item>
</style>

继承复选框的基本样式

答案 1 :(得分:0)

但是当我在布局创建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"

能够设定主题代码? 我想通过样式设置TEXTSIZE因为我用的布局,以不同的分辨率(大,超大,小尺寸)