【问题标题】:Button color should not change when I release the button in Android当我在 Android 中释放按钮时,按钮颜色不应该改变
【发布时间】:2011-04-22 12:36:06
【问题描述】:

<item android:state_focused="true" > 
    <shape> 
        <gradient 
            android:endColor="#FF9900" 
            android:startColor="#FF9966" 
            android:angle="270" /> 
        <stroke 
            android:width="3dp" 
            android:color="#CCCCCC" /> 
        <corners 
            android:radius="3dp" /> 
        <padding 
            android:left="10dp" 
            android:top="10dp" 
            android:right="10dp" 
            android:bottom="10dp" /> 
    </shape> 
</item> 

   <item>         
    <shape> 
        <gradient 
            android:endColor="#FFFFFF" 
            android:startColor="#FFFFFF" 
            android:angle="270" /> 
        <stroke 
            android:width="1dp" 
            android:color="#666666" /> 
        <corners 
            android:radius="1dp" /> 
        <padding 
            android:left="3dp" 
            android:top="3dp" 
            android:right="3dp" 
            android:bottom="3dp" /> 
    </shape> 
</item> 

以上是我为用黑色填充 Button 边框而编写的代码。通过设置为背景,我用于 3 个按钮的代码相同。现在,当我单击 button1 时,红色出现并在我释放时消失。但我希望红色可见,直到我按下下一个按钮。虽然我在按下后释放 Button1,但应该可以看到红色。但是只有当我按下任何其他按钮时,红色才会消失。
谁能帮我解决这个问题?
请有人帮我解决这个问题吗?
提前致谢,

【问题讨论】:

  • 为什么不使用ToggleButton?

标签: android


【解决方案1】:

恐怕你不能仅仅通过定义按钮状态的xml来完成你的目标。因为,AFAIK 没有状态定义按钮释放后的行为(只是正常、聚焦和按下)。应该是正常状态。

但是,您可以执行以下操作:

  • 假设你原来的 xml drawable 是 drawable A
  • 定义新的 xml 可绘制 B,其正常状态定义为想要的红色按钮
  • 用户按下您的按钮后,它会显示为红色,因为 drawable A 会这么说
  • 当用户释放按钮时,通过改变drawable确保它保持红色

    myButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.B));

  • 当用户按下另一个按钮时,通过

    将其恢复为正常状态

    myButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.A));

【讨论】:

    【解决方案2】:

    尝试为android:state_selected添加状态

    【讨论】:

    • android:state_selected 没有效果。我为此添加了一个单独的标签以及 android:state_pressed。请给我任何其他解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2015-09-09
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2021-07-02
    相关资源
    最近更新 更多