【问题标题】:How to make selector keep the pressed state till clicked again如何使选择器保持按下状态直到再次单击
【发布时间】:2019-03-30 23:13:55
【问题描述】:

我使用选择器来创建自定义按钮

 <item android:drawable="@drawable/button_bg_selected" android:state_selected="true"></item>
 <item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"></item>
 <item android:drawable="@drawable/button_bg_normal"></item>

现在我希望该按钮充当状态按钮,保持按下状态,直到再次单击以返回未按下状态。

如果可能,我想避免以编程方式实现此设置状态。

有没有办法使用选择器(或类似的东西)来做到这一点?

【问题讨论】:

    标签: android android-button


    【解决方案1】:

    你能用 ToggleButton 代替 Button 吗?

    layout.xml

    <ToggleButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button"
            android:textOff="done"
            android:textOn="done"
            android:background="@drawable/test_selector"/>
    

    test_selector.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <!-- on checked -->
        <item
            android:state_checked="true"
            android:state_pressed="false"
            android:drawable="@drawable/button_bg_selected" />
    
        <!-- normal -->
        <item
            android:state_checked="false"
            android:state_pressed="false"
            android:drawable="@drawable/button_bg_normal" />
    
        <!-- pressed -->
        <item
            android:state_pressed="true"
            android:drawable="@drawable/button_bg_pressed" />
    
    </selector>
    

    【讨论】:

    • 使用带有选择器的切换按钮作为背景不允许您创建更精细的设计。可点击的布局更加通用。
    • 你可以这样做。 stackoverflow.com/a/17274658/6578666
    猜你喜欢
    • 2014-07-02
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    相关资源
    最近更新 更多