AppCompatRadioButton не отображается

Так как я хочу использовать buttonTint на версии < 21, мне нужно переключиться с RadioButton в AppCompatRadioButton, К сожалению, кнопка не отображается на устройстве (Android 5.1). Это странно, потому что android:text из AppCompatRadioButton работает, так что это означает, что кнопка в основном работает. Только круг не показан. Есть идеи почему? Я также пытался установить другие атрибуты цвета, которые идут с AppCompatRadioButton, Это тоже не сработало. Я также обновил до последней версии пакета совместимости, переместил кнопку внутри xml в другую позицию, но ничего не работает.

Это определение xml:

<android.support.v7.widget.AppCompatRadioButton
    android:id="@+id/radio_bronze_monthly"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:onClick="onBillingRadioButtonClicked"
    android:text="@string/bronze_monthly"
    android:textColor="@color/black"
    android:textSize="@dimen/default_text_size"
    app:buttonTint="@color/black"
    app:colorAccent="@color/black"
    app:colorPrimary="@color/black"
    app:colorPrimaryDark="@color/black"/>

3 ответа

Решение

Я понял, что было не так: внутри декларации активности в AndroidManifestЯ установил собственную прозрачную тему, которая используется и в других видах деятельности:

<activity
    android:name=".domain.billing.BillingActivity"
    android:noHistory="true"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.Transparent">
</activity>

Это из styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="Theme.Transparent" parent="android:Theme">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:backgroundDimEnabled">false</item>
    </style>

<!--more styles -->
</resources>

если я опущу эту строку, это работает:

android:theme="@style/Theme.Transparent"

Сборка библиотеки дизайна в модуле build.gradle(App)

У меня есть Android 5.1, и я быстро его опробовал, у меня так работает нормально. Я просто поместил его в макет ограничения по умолчанию, но это не должно иметь никакого значения.

<android.support.v7.widget.AppCompatRadioButton
    android:id="@+id/radio_bronze_monthly"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:buttonTint="@android:color/black"
    android:text="asdf"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />
Другие вопросы по тегам