android - Android NumberPicker 在加载视图时渲染滚动条
问题描述
我正在构建一个使用 NumberPickers 的小应用程序。一切都按预期工作,除了导航到包含选择器的片段时,它会在每个 NumberPicker 的右上角显示小滚动条,然后它们会在几秒钟后消失。
当我导航到片段并在它们上设置 android:descendantFocusability="blocksDescendants" 无济于事时,我认为这与它们获得焦点有关。当我设置<requestFocus />
另一个元素并且它不受禁用滚动指示器的影响时,也会出现此问题。
我没有做任何自定义样式,选择器的代码是:
<NumberPicker
android:id="@+id/forTimeSecondsPicker"
android:layout_width="90dp"
android:layout_height="240dp"
android:layout_marginTop="206dp"
android:layout_marginEnd="90dp"
android:descendantFocusability="blocksDescendants"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"></NumberPicker>
在 .kt 文件中,它们被初始化为
private var workSecondsPicker : NumberPicker? = null
我设置这样的值
workSecondsPicker = requireView().findViewById(R.id.forTimeSecondsPicker)
workSecondsPicker?.minValue = 0
workSecondsPicker?.maxValue = 59
workSecondsPicker?.value = WORK_SECONDS_DEFAULT
一个奇怪的观察结果是,在我的物理设备(Pixel 4)和模拟器(Pixel 3a)上运行应用程序时,第一次运行应用程序时不会出现问题。但是,如果我从应用程序内的任何位置导航到设置屏幕 (androidx.preference),然后使用 NumberPickers 导航回其中一个片段,滚动条每次都会出现,直到重新启动应用程序,这种行为是可重现且一致的。
我的目标是 sdk 30(分钟 23)并且正在使用 Android Studio 4.1.2。
解决方案
我花了一段时间才意识到这些东西是滚动条,但仍然不确定为什么它们只在访问首选项屏幕后才出现但设置
android:scrollbarSize="0dp"
成功了。
推荐阅读
- loops - 如何在 Less/Sass 中使用循环创建变量列表?
- mongodb - 使用 MongoDB Mongoose 更新模型、删除其数组并填充新数组
- python - Kim 和 Marshmallow python 框架之间的差异
- pandas - 用 pandas 的唯一引用填充数据组
- opencv - 测量到边缘给定点的距离
- ios - 如何在 SwiftUI 中使用 SegmentedPickerStyle() 更改选取器的高度?
- python - 如何通过列表设置类属性的值
- javascript - Pentaho Kettle:用循环比较两个输入?
- c# - 将 GeoJson 功能映射到属性
- python - python中的动态类级别类型提示?