【问题标题】:android checkbox text disappears when custom background is set设置自定义背景时,android复选框文本消失
【发布时间】: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


【解决方案1】:

问题是 135x135 按钮可绘制将文本推到 CheckBox 宽度的范围之外。您可以设置android:button="@color/transparent",而不是使用drawable。

【讨论】:

  • 这个答案解决了问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多