【问题标题】:Setting button drawable for RadioButton using drawable xml not working for checked state使用可绘制 xml 为 RadioButton 设置可绘制按钮不适用于检查状态
【发布时间】:2014-02-04 20:10:26
【问题描述】:

我有一组单选按钮,我想在选中时将按钮的背景设置为纯色。我创建了一个可绘制资源,使用选择器和项目定义,例如:

<item android:state_checked="true" android:state_pressed="false"

      android:drawable="@color/app_tint"/>

在尝试使其工作时有多种变化。在包含按钮的布局中,我尝试设置按钮和背景属性(不是同时设置,只是测试中的一个或另一个),例如:

android1:background="@drawable/radio_state"

android1:button="@drawable/radio_state"

我已经阅读了几篇文章,我觉得我已经很接近了,只是缺少一些东西来完成它。谢谢。

【问题讨论】:

  • 尝试为选择器设置背景属性,然后在按钮上设置透明色,不工作。尝试了选择器项目本身的更多变体。依然没有。这使得 iOS 工具栏项目看起来很棒!! ;-)
  • 用户错误...呃。和 iOS 工具栏项目仍然很糟糕;-)

标签: android radio-button xml-drawable


【解决方案1】:

这是我们为应用所做的:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_bcnav_ebilling_focus"                            
      android:state_checked="true" />
    <item android:drawable="@drawable/ic_bcnav_ebilling_focus"
      android:state_selected="true" />
    <item android:drawable="@drawable/ic_bcnav_ebilling_focus"
      android:state_pressed="true" />
    <item android:drawable="@drawable/ic_bcnav_ebilling_focus"
      android:state_focused="true" />
    <item android:drawable="@drawable/ic_bcnav_ebilling" />
</selector>

每个状态都有不同的可绘制对象,尽管在本示例中,我们并不真正关心所有状态是否有很大不同 - 只需 focus=true 获取突出显示的可绘制对象(它具有“..._focus”)

【讨论】:

  • 这适用于单选按钮吗?你如何在布局中设置按钮?您将上述资源设置在哪个(单选按钮的)属性上?谢谢马丁。
  • 不起作用;我为drawable指定了我的颜色,然后分配给两个按钮,然后是背景,然后是布局中单选按钮的两个属性,什么都没有。按下时它会突出显示,但不会粘住。谢谢马丁
  • 好的,知道我为什么不工作了;在子项目中有一个覆盖 xml,但它的文件名不正确。可悲的是,那是我正在编辑的那个……所以,修复了文件名问题,然后繁荣!
猜你喜欢
  • 2019-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多