убрать флажок переключателя по умолчанию при использовании пользовательского селектора - PullRequest
10 голосов
/ 15 февраля 2012

Я пытаюсь оформить радио-кнопку, поэтому я создал селектор. Все работает, кроме стандартного переключателя, изображение все еще отображается Как снять флажок переключателя по умолчанию. Я пытался присвоить drawable пустой строке, но компилятору это не нравится.

Вот код одного из моих состояний селектора:

<item android:state_checked="true" android:drawable="">
    <shape>
        <gradient
            android:startColor="#808080"
            android:centerColor="#2F2F2F"
            android:endColor="#2F2F2F"
            android:angle="270" />
        <stroke
            android:width="2dp"
            android:color="@color/black" />
        <corners
            android:radius="5dp" />
    </shape>
</item>

Ответы [ 3 ]

34 голосов
/ 24 июля 2013

Установить значение кнопки на ноль в макете XML

android:button="@null"
21 голосов
/ 17 февраля 2012

Я обнаружил, что не могу снять флажок радиопереключения по умолчанию в селекторе.Я обнаружил, что его можно удалить, присвоив нулевому свойству «button» либо стиль, либо определение самой кнопки.

Вот пример использования стиля.

<RadioButton
    android:id="@+id/myRadioButton"
    style="@style/RadioButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/custom_radio_button"/>

<style name="RadioButtonStyle" parent="@android:style/Widget.CompoundButton">
    <item name="android:background">@drawable/radiobutton_selector</item>
    <item name="android:button">@null</item>
</style>

radiobutton_selector определяет селектор, который рисует кнопку в ее различных проверенных состояниях.Вот проверенное состояние:

<item android:state_checked="true">
    <shape>
        <gradient
            android:startColor="@color/titleButtonCheckedGradientLight"
            android:centerColor="@color/titleButtonCheckedGradientDark"
            android:endColor="@color/titleButtonCheckedGradientDark"
            android:angle="270" />
        <stroke
            android:width="1dp"
            android:color="@color/titleButtonBorder" />
        <corners
            android:radius="5dp" />
    </shape>
</item>
0 голосов
/ 18 марта 2019

Если вы хотите программно установить пользовательский фон для RadioButton, то вы можете установить его следующим образом:

radioButton.setButtonDrawable(null);
radioButton.setBackgroundResource(R.drawable.your_custom_drawable);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...