Uto*_*xin 5 android android-widget
我相信我可能在 Android UI 中发现了一个错误,但我想确保我没有做错什么。这是我正在运行的导致问题的代码的简化版本。此侦听器设置在我的 UI 中的特定 NumberPicker 上,它可以正确禁用/启用某些内容,但是如果用户更改了它禁用的其他 NumberPicker 之一的值,它的行为会有点奇怪。
它仍然正确地禁用输入,但它无法将值变灰,使其看起来仍然处于启用状态。这是故意的吗?难道我做错了什么?
NumberPicker.OnValueChangeListener diceChangeListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
View parent = (View) picker.getParent();
if (newVal == 0) {
((NumberPicker) parent.findViewById(R.id.diceCountPicker1)).setEnabled(false);
} else if (oldVal == 0) {
((NumberPicker) parent.findViewById(R.id.diceCountPicker1)).setEnabled(true);
}
}
};
Run Code Online (Sandbox Code Playgroud)
让我知道是否有更好的方法来做到这一点,或者这是否是一个合法的错误。如果它是一个错误,有没有办法解决它?
编辑:这是 XML 中的 diceCountPicker1 的定义:
<NumberPicker
android:id="@+id/diceCountPicker1"
android:layout_width="48dp"
android:layout_height="128dp"
android:descendantFocusability="blocksDescendants"
/>
Run Code Online (Sandbox Code Playgroud)
编辑2:
我已经在模拟器中对此进行了测试,并确认该问题在 Jellybean (4.1) 之前不存在。它在 ICS 中正常工作。那是……烦人。但我现在可能可以忍受它。我会为解决该错误的潜在方法保持开放,但在我看来它就像一个真正的错误,我怀疑它是否可以修复。
好吧,由于没有额外的反馈,我将继续并结束它。这是我所知道的:
这似乎是 Jellybean 中引入的错误。我已经在模拟器中进行了测试,UI 在 ICS 及更早版本中按预期工作。目前,我只是要处理这个问题,并尝试提交正式的错误报告。
| 归档时间: |
|
| 查看次数: |
2595 次 |
| 最近记录: |