Radio Button is only partially checked

大憨熊 提交于 2019-12-18 05:41:51

问题


I know this sound weird so here is the picture.

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.

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>

回答1:


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)




回答2:


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




回答3:


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




回答4:


change background color from white to another color it will appear




回答5:


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



来源:https://stackoverflow.com/questions/45926301/radio-button-is-only-partially-checked

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!