NumberPicker 分割线设置

NumberPicker 分割线设置

Android小彩虹2021-08-26 0:10:40130A+A-

NumberPicker自带有分割线,可以将分割线的颜色设置为透明,再给NumberPicker所选项设置背景色,便可修改选择样式

<View android:layout_width="216dp" android:layout_height="45dp" android:background="@drawable/bg_80f5f6fa_round12" app:layout_constraintBottom_toBottomOf="@id/np_height" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/np_unit" />

<NumberPicker android:id="@+id/np_unit" android:layout_width="0dp" android:layout_height="160dp" android:layout_marginTop="16dp" android:layout_marginEnd="32dp" android:layout_marginBottom="20dp" android:descendantFocusability="blocksDescendants" android:selectionDividerHeight="0dp" app:layout_constraintBottom_toTopOf="@id/bt_save" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_weight="1" app:layout_constraintTop_toBottomOf="@id/tv_description" />
np_unit.minValue = 0    // 最小值
np_unit.maxValue = 1        // 最大值
np_unit.value = np_unit.minValue        // 当前值
val array = arrayOf(Constant.HeightUnit.CM, Constant.HeightUnit.FITIN)
np_unit.displayedValues = array     //数据显示格式
unit = array[0]

np_unit.setOnValueChangedListener({ picker, oldVal, newVal ->       //监听选中
 			//TODO
                                  })                 
//设置分割线颜色为透明
for (pickerField in np_unit.javaClass.declaredFields) {
            if (pickerField.name.equals("mSelectionDivider")) {     //分割线
                pickerField.isAccessible = true
                val color = context.getDrawable(R.color.colorTransparent)
                pickerField.set(np_unit, color)       //设置透明色
                np_unit.invalidate()      //刷新组件
            }
        }

如图:

截屏2021-03-29下午5.59.00.png

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们