【问题标题】:Spinner dropdown list is jumping while scrollingSpinner 下拉列表在滚动时跳跃
【发布时间】:2019-07-01 16:15:15
【问题描述】:

为什么我的微调器在滚动时会跳动?我只是在做以下事情:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(v.getContext(), layout, textViewId, new ArrayList<String>());
adapter.setDropDownViewResource(layoutDropdown);
adapter.addAll(<DATA>);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(listener);

只要下拉菜单很小,一切正常,但如果它变大且可滚动,我看到它在滚动时会跳来跳去。为什么?

我不会在滚动时更改选择或数据,所以我很惊讶会在如此简单的设置中发生这种情况。任何想法如何解决这个问题?

【问题讨论】:

  • 你能发布你的适配器吗?
  • 适配器代码很简单,已经添加到我的问题中了。
  • 你有后台进程吗?您是否在不同的设备/不同的操作系统版本中发现了不同的行为?你在使用 support appcompat 库吗?
  • 没有。我对长列表使用对话框。可悲的是,我无法在一个小项目中重现这个问题......
  • 我有同样的问题,在另一个项目中,具有相同列表的相同代码运行良好,没有任何故障,而在另一个项目中,它在滚动时会跳转。两者都使用相同的适配器,相同的微调器,相同的布局。我能想到的唯一区别是我在故障项目中使用 androidX 。你们都在用 AndroidX 吗?

标签: android spinner android-arrayadapter


【解决方案1】:

我遇到了这个问题。

问题是 anroidx 更新库

更新:Bill Bunting 评论“alpha04”现在可以了

通过将版本 appcompat 从 "alpha02/alpha03" 恢复到 "alpha04"

来解决

实现 'androidx.appcompat:appcompat:1.1.0-alpha04'

或更好

实现 'androidx.appcompat:appcompat:1.0.2' -> 更稳定

【讨论】:

  • 对我来说似乎已在 1.1.0-alpha4 中修复。
  • 面临同样的问题,但我无法下载 1.1.0-alpha4。解决方法:spinnerMode="dialog"
  • 试试这个实现 'androidx.appcompat:appcompat:1.0.2'
【解决方案2】:

根据发行说明Fixed AppCompatSpinnerscrolling in dropdown mode,这是一个非常烦人但已知的bug 已在 appcompat 的 1.1.0-alpha04 中修复

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-01
    • 2013-01-25
    • 1970-01-01
    • 2013-04-15
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多