美文网首页
android NumberPickerView

android NumberPickerView

作者: hao_developer | 来源:发表于2020-12-10 11:44 被阅读0次
    image.png
    NumberPickerView GitHub地址 https://github.com/Carbs0126/NumberPickerView
    引用
    implementation 'cn.carbswang.android:NumberPickerView:1.2.0'
    

    兼容的方法有:
    setOnValueChangedListener()
    setOnScrollListener()
    setDisplayedValues()/getDisplayedValues()
    setWrapSelectorWheel()/getWrapSelectorWheel()
    setMinValue()/getMinValue()
    setMaxValue()/getMaxValue()
    setValue()/getValue()

    兼容的内部接口有:
    OnValueChangeListener
    OnScrollListener

    添加的接口有:
    OnValueChangeListenerInScrolling//滑动过程中响应value change
    更改字体的方法
    mNumberPickerView.setContentTextTypeface(tf);
    mNumberPickerView.setContentTextTypeface(tf);
    mNumberPickerView.postInvalidate();

    布局

    <cn.carbswang.android.numberpickerview.library.NumberPickerView
            android:id="@+id/picker"
            android:layout_width="wrap_content"
            android:layout_height="240dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="20dp"
            android:background="#11333333"
            android:contentDescription="test_number_picker_view"
            app:npv_ItemPaddingHorizontal="5dp"
            app:npv_ItemPaddingVertical="5dp"
            app:npv_ShownCount="5"
            app:npv_RespondChangeOnDetached="false"
            app:npv_TextSizeNormal="16sp"
            app:npv_TextSizeSelected="20sp"
            app:npv_WrapSelectorWheel="true"/>
    

    各项自定义属性的说明

    <declare-styleable name="NumberPickerView">
            <attr name="npv_ShownCount" format="reference|integer" />//显示的条目个数,默认3个
            <attr name="npv_ShowDivider" format="reference|boolean" />//是否显示两条divider,默认显示
            <attr name="npv_DividerColor" format="reference|color" />//两条divider的颜色
            <attr name="npv_DividerMarginLeft" format="reference|dimension" />//divider距左侧的距离
            <attr name="npv_DividerMarginRight" format="reference|dimension" />//divider距右侧的距离
            <attr name="npv_DividerHeight" format="reference|dimension" />//divider的高度
            <attr name="npv_TextColorNormal" format="reference|color" />//未选中文字的颜色
            <attr name="npv_TextColorSelected" format="reference|color" />//选中文字的颜色
            <attr name="npv_TextColorHint" format="reference|color" />//中间偏右侧说明文字的颜色
            <attr name="npv_TextSizeNormal" format="reference|dimension" />//未选中文字的大小
            <attr name="npv_TextSizeSelected" format="reference|dimension" />//选中文字的大小
            <attr name="npv_TextSizeHint" format="reference|dimension" />//说明文字的大小
            <attr name="npv_TextArray" format="reference" />//文字内容,stringarray类型
            <attr name="npv_MinValue" format="reference|integer" />//最小值,同setMinValue()
            <attr name="npv_MaxValue" format="reference|integer" />//最大值,同setMaxValue()
            <attr name="npv_WrapSelectorWheel" format="reference|boolean" />//设置是否wrap,同setWrapSelectorWheel
            <attr name="npv_HintText" format="reference|string" />//设置说明文字
            <attr name="npv_EmptyItemHint" format="reference|string" />//空行的显示文字,默认不显示任何文字。只在WrapSelectorWheel==false是起作用
            <attr name="npv_MarginStartOfHint" format="reference|dimension" />//说明文字距离左侧的距离,"左侧"是指文字array最宽item的右侧
            <attr name="npv_MarginEndOfHint" format="reference|dimension" />//说明文字距离右侧的距离
            <attr name="npv_ItemPaddingHorizontal" format="reference|dimension" />//item的水平padding,用于wrap_content模式
            <attr name="npv_ItemPaddingVertical" format="reference|dimension" />//item的竖直padding,用于wrap_content模式
            <attr name="npv_RespondChangeOnDetached" format="reference|boolean" />//在detach时如果NumberPickerView正好滑动,设置
            //是否响应onValueChange回调,用在一个Dialog/PopupWindow被显示多次,
            //且多次显示时记录上次滑动状态的情况。建议Dialog/PopupWindow在显示时每次都指定初始值,且将此属性置为false
            <attr name="npv_RespondChangeInMainThread" format="reference|boolean" />//指定`onValueChanged`响应事件在什么线程中执行。
            //默认为`true`,即在主线程中执行。如果设置为`false`则在子线程中执行。
            //以下属性用于在wrap_content模式下,改变内容array并且又不想让控件"跳动",那么就可以设置所有改变的内容的最大宽度
            <!--just used to measure maxWidth for wrap_content without hint,
                the string array will never be displayed.
                you can set this attr if you want to keep the wraped numberpickerview
                width unchanged when alter the content list-->
            <attr name="npv_AlternativeTextArrayWithMeasureHint" format="reference" />//可能达到的最大宽度,包括说明文字在内,最大宽度只可能比此String的宽度更大
            <attr name="npv_AlternativeTextArrayWithoutMeasureHint" format="reference" />//可能达到的最大宽度,不包括说明文字在内,最大宽度只可能比此String的宽度+说明文字+说明文字marginstart +说明文字marginend 更大
            <!--the max length of hint content-->
            <attr name="npv_AlternativeHint" format="reference|string" />//说明文字的最大宽度
        </declare-styleable>
    

    相关文章

      网友评论

          本文标题:android NumberPickerView

          本文链接:https://www.haomeiwen.com/subject/wqilgktx.html