问题描述
我知道这听起来很奇怪,所以这里是图片。
它保存正确的值。选择(部分)正确的单选按钮。 OnCheckedChangeListener
中的所有逻辑均正确执行。我完全惊呆了。为什么单选按钮没有完全检查?
我唯一能想到的就是我正在使用 Rx2Firebase
periodRetriever = FirebaseHelper.getInstance(getContext())。getPeriod()
.defaultIfEmpty(0)
.distinctUntilChanged()
.subscribe(new Consumer< Integer>(){
@Override
public void accept(@NonNull Integer headerType)引发异常{
getRadioViewChecked(headerType) .setChecked(true);
}
});
EDIT1
EDIT2
布局:
< 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>
看起来像是动画错误。在ViewPager内的片段上使用CompoundButton时,可绘制状态未正确设置。
对于复选框也是如此,如下所示:。
在调用RadioGroup.check(id)或Checkbox.setChecked(true)之后立即调用jumpDrawablesToCurrentState()似乎可以解决问题(thx @Dalmas)
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>
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)
这篇关于单选按钮仅被部分检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!