微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – NumberPicker在禁用时不会变灰

我相信我可能在Android UI中发现了一个错误,但我想确保我没有做错的事情.这是我正在运行的代码的简化版本,这导致了问题.这个监听器设置在我的UI中的特定NumberPicker上,它正确地禁用/启用了一些东西,但是如果用户已经改变了它禁用的其他NumberPickers之一的值,那么它的行为有点奇怪.

它仍然可以正确地禁用输入,但它无法使值变灰,使其看起来仍然启用.这是有意的吗?难道我做错了什么?

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);
        }
    }
};

让我知道是否有更好的方法来做到这一点,或者这是否是一个合法的错误.如果它是一个bug,有没有办法解决它?

编辑:这是XML中diceCountPicker1的定义:

<NumberPicker
    android:id="@+id/diceCountPicker1"
    android:layout_width="48dp"
    android:layout_height="128dp"
    android:descendantFocusability="blocksDescendants"
    />

编辑2:

我在模拟器中对此进行了测试,并确认在Jellybean(4.1)之前该问题不存在.它在ICS中正常工作.那……很烦人.但我现在可以忍受它了.我会留下这个开放的方法解决这个bug的潜在方法,但它看起来像一个真正的bug,我怀疑它可以修复.

解决方法:

好吧,由于没有其他反馈,我将继续关闭它.这就是我所知道的:

这似乎是Jellybean中引入的错误.我已经在模拟器中进行了测试,并且UI在ICS和更早版本中按预期工作.目前,我只是要解决这个问题,并尝试提交正式的错误报告.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐