【发布时间】:2015-01-14 16:11:52
【问题描述】:
我想制作一个周历,其中每一天都是一个自定义复选框,目标如下图所示:
(http://i.imgur.com/WjIKCd0.png)
当用户点击某一天(在本例中为星期一)时,“背景”和“按钮”复选框也会改变文本颜色...
我制作了drawables,它似乎工作正常...检查下面的代码:
复选框布局:
<CheckBox
android:id="@+id/selectMonday"
android:layout_width="40dp"
android:layout_height="40dp"
android:button="@drawable/ic_none"
style="@style/CheckBoxBackgroundView"
android:onClick="selectDay"
android:text="@string/monday_letter"
android:gravity="center"
android:checked="true"/>
(可绘制的“ic_none”,是一个简单的 135x135“透明”图像,其中没有任何内容......)
样式(CheckBoxBackgroundView):
<style name="CheckBoxBackgroundView">
<item name="android:background">@drawable/background_day_week_picker_box_selector</item>
<item name="android:textColor">@color/text_color_day_week_picker_box_selector</item>
<item name="android:textSize">@dimen/text_spinner_text</item>
<item name="android:textStyle">bold</item>
</style>
背景选择器(background_day_week_picker_box_selector):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false"
android:drawable="@drawable/background_day_of_week_picker_unselected" />
<item android:state_checked="true"
android:drawable="@drawable/background_day_of_week_picker_selected" />
</selector>
背景选择(background_day_of_week_picker_selected):
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- view background color -->
<solid
android:color="@color/red_color" >
</solid>
<!-- view border color and width -->
<stroke
android:width="3dp"
android:color="@color/transparent">
</stroke>
<!-- Here is the corner radius -->
<corners
android:radius="10dp" >
</corners>
</shape>
最后是颜色选择器(text_color_day_week_picker_box_selector):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false"
android:color="@color/red_color"></item>
<item android:state_checked="true"
android:color="@color/white"></item>
</selector>
我在几个设备上试过这个......在一些设备中,它看起来像它假设的那样,在其他设备中,文本消失了,看起来像这样:
(http://i.imgur.com/Jy9FrPS.png)
可能是巧合,但所有工作的设备都在 5 英寸以下...
我没有看到我的代码有什么问题吗?有人有什么建议吗?
提前致谢
【问题讨论】:
-
你确定文字消失了,还是只是颜色不对?
state_checked="false"用黑色代替红色,作为实验。 -
我试过了,我也把 'android:textColor' 从样式中拿走了,但仍然没有显示(字母应该保持默认颜色 - 黑色)这个代码适用于一些我的设备,在其他设备中没有...所以问题可能出在某些设备不接受的某些部分...您还有其他建议吗?
-
我将在今天晚些时候对此进行测试,如果我发现任何问题,请告知您。
-
请...谢谢
-
ic_none在哪个可绘制文件夹中?
标签: android android-layout checkbox android-checkbox textcolor