Radio Button is only partially checked

2019-02-16 14:13发布

I know this sound weird so here is the picture.

enter image description here

It hold the correct value. The correct radiobutton is (partially) selected. All logic in the OnCheckedChangeListener is executed correctly. I'm completly stunned. Why is the radio button not fully checked?

Only thing I can think of is that i'm using Rx2Firebase

periodRetriever = FirebaseHelper.getInstance(getContext()).getPeriod()
        .defaultIfEmpty(0)
        .distinctUntilChanged()
        .subscribe(new Consumer<Integer>() {
            @Override
            public void accept(@NonNull Integer headerType) throws Exception {
                getRadioViewChecked(headerType).setChecked(true);
            }
        });

EDIT1

Marcos suggestion I can't see the white tick. This is not the case. enter image description here

EDIT2

Layout:

<RadioGroup
    android:id="@+id/rgPeriod"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <android.support.v7.widget.AppCompatRadioButton
        android:id="@+id/rbMonth"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="@string/month" />

    <android.support.v7.widget.AppCompatRadioButton
        android:id="@+id/rbWeek"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="@string/week" />

    <android.support.v7.widget.AppCompatRadioButton
        android:id="@+id/rb4Weeks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="@string/four_weeks" />


</RadioGroup>

5条回答
一纸荒年 Trace。
2楼-- · 2019-02-16 14:55

Looks like an Animation Bug. When using a CompoundButton on a Fragment inside a ViewPager the drawable state is not set correctly.

This happens also for Checkboxes as seen here: Android Nougat: Why do checkboxes on Fragment have incomplete state when selected programmatically (but look fine on Lollipop).

Calling jumpDrawablesToCurrentState() just after calling RadioGroup.check(id) or Checkbox.setChecked(true) seems to fix the problem (thx @Dalmas)

查看更多
Explosion°爆炸
3楼-- · 2019-02-16 15:03

change background color from white to another color it will appear

查看更多
可以哭但决不认输i
4楼-- · 2019-02-16 15:10

Your theme is Dark and you cant see the white tick, you need to change it to another color.

查看更多
乱世女痞
5楼-- · 2019-02-16 15:10

Have you tried using RadioButton instead of android.support.v7.widget.AppCompatRadioButton i think that might solve the issue

On the other hand, here you can find a doc of how to style RadioButtons

http://www.materialdoc.com/radio-button/

  1. Declare custom style in your styles.xml file.

<style name="MyRadioButton" parent="Theme.AppCompat.Light"> <item name="colorControlNormal">@color/indigo</item> <item name="colorControlActivated">@color/pink</item> </style>

  1. Apply this style to your RadioButton via android:theme attribute.

`

   <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="Radio Button"
        android:theme="@style/MyRadioButton"/>

source: https://stackoverflow.com/a/35044856/4492504

查看更多
啃猪蹄的小仙女
6楼-- · 2019-02-16 15:13

Try changing your Theme or the color attributes of your radio button

查看更多
登录 后发表回答