0

我有一个按钮,该按钮分配了一个带有选择器的 bg,该选择器控制其 bg 可绘制(如下所示)。我似乎找不到在按下按钮后项目持续存在的状态。为了澄清我正在寻找可以相应地为当前/最近按下的按钮分配图像的状态。

有谁知道如何做到这一点?

<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize="true"
    android:dither="false"
    android:variablePadding="false">
    <item android:drawable="@drawable/option_button_yellow" android:state_pressed="true"/>
    <item android:drawable="@drawable/option_button_yellow" android:state_focused="true"/>
    <item android:drawable="@drawable/option_button_white"/>
</selector>
4

3 回答 3

1

使用 a ToggleButtonthen 你可以state_checked在你的选择器中使用。如果您希望它在单击其他内容时取消选中该按钮,然后在其中使用带有 ToggleButtons 的 RadioGroup(或可能的其他视图),您必须自己管理onXXX()事件,这里有一个示例

于 2013-09-11T04:32:06.933 回答
0

可能你正在寻找这样的东西:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/btn_state_highlighted" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/btn_state_highlighted"/>
<item android:drawable="@drawable/btn_state_normal" />
</selector>

其中 btn_state_highlighted 和 btn_state_normal 是按钮各自状态的图像。

于 2013-09-11T04:30:08.383 回答
0

嘿伙计们,所以我想我对最后一个问题不清楚,可能自己找到了解决方案。我一直在寻找一组相互排斥的按钮,一旦单击它们就会保持其更改的背景图像,并将按钮的其余部分恢复为其默认的背景图像。我似乎已经能够通过用单选按钮替换按钮并将其父级设置为单选组来做到这一点。加上简单的更改 xml 可绘制选择器以包含 state_checked = "true" 项目。但是,我现在在尝试在自定义 bg 到单选按钮中包含对齐文本时遇到问题,同时删除其按钮(设置 android:button="@nul" )。这似乎弄乱了对齐方式。有什么想法吗?

布局

<RadioGroup android:id="@+id/options" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"  android:paddingTop="@dimen/option_button_layout_top_margin" android:paddingBottom="@dimen/option_button_layout_bottom_margin">

        <RadioButton android:id="@+id/option_skill" android:text="@string/option_skill" style="@style/option_button"/>
        <RadioButton android:id="@+id/option_item" android:text="@string/option_item" style="@style/option_button" android:layout_marginLeft="@dimen/option_button_spacing"/>

    </RadioGroup>

样式.xml

<style name='option_button'>
        <item name="android:layout_width">@dimen/option_button_size</item>
        <item name="android:layout_height">@dimen/option_button_size</item>
        <item name="android:button">@null</item>
        <item name="android:background">@drawable/option_button</item>
        <item name="android:onClick">option_onclick</item>
</style>

可绘制的

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize="true"
    android:dither="false"
    android:variablePadding="false">
    <item android:drawable="@drawable/option_button_yellow" android:state_pressed="true"/>
    <item android:drawable="@drawable/option_button_yellow" android:state_checked="true"/>
    <item android:drawable="@drawable/option_button_white"/>
</selector>
于 2013-09-11T04:45:44.560 回答