标签: android-number-picker

带有Formatter的Android NumberPicker在首次渲染时不会格式化

我有一个NumberPicker,它有一个格式化程序,可以在NumberPicker旋转或手动输入值时格式化显示的数字.这工作正常,但是当第一次显示NumberPicker并且我用setValue(0)0 初始化它时没有被格式化(它应该显示为" - "而不是0).一旦我从那一点旋转NumberPicker一切正常.

如何强制NumberPicker始终格式化 - 在第一次渲染时以及在使用键盘手动输入数字时?

这是我的格式化程序

public class PickerFormatter implements Formatter {

 private String mSingle;
 private String mMultiple;

 public PickerFormatter(String single, String multiple) {
    mSingle = single;
    mMultiple = multiple;
 }

 @Override
 public String format(int num) {
    if (num == 0) {
        return "-";
    }
    if (num == 1) {
        return num + " " + mSingle;
    }
    return num + " " + mMultiple;
 }

}
Run Code Online (Sandbox Code Playgroud)

我将格式化程序添加到选择器中setFormatter(),这是我对拾取器所做的全部操作.

    picker.setMaxValue(max);
    picker.setMinValue(min);
    picker.setFormatter(new PickerFormatter(single, multiple));
    picker.setWrapSelectorWheel(wrap);
Run Code Online (Sandbox Code Playgroud)

android formatter numberpicker android-number-picker

32
推荐指数
6
解决办法
1万
查看次数

如何减少NumberPicker中的填充

如何减少NumberPicker中的填充

在此输入图像描述

我想要这样的东西:

在此输入图像描述

android android-number-picker

20
推荐指数
1
解决办法
6642
查看次数

Android Jetpack Compose NumberPicker Widget 等效项

在 Jetpack Compose 中创建 NumberPicker 小部件的推荐解决方案是什么?类似于下图。我可以在可组合项中使用 AndroidView 创建 NumberPicker,但该视图似乎不允许快速滑动或捕捉到位置。顺便说一句,下面的 UI 显示了连续放置的三个 NumberPicker。它不应该代表 DatePicker

在此输入图像描述

kotlin numberpicker android-number-picker android-jetpack android-jetpack-compose

12
推荐指数
2
解决办法
1万
查看次数

更改NumberPicker渐变边缘值或更改顶部/底部文本的alpha

有没有办法增加数字选择器的衰落边缘或更改顶部/底部文本alpha?我能够扩展NumberPicker类并更改数字选择器轮的alpha但是一旦我开始滚动alpha也会应用到中心文本.正如你所看到的,我选择了小时值并且alpha应用于所有文本.我希望alpha只是顶部和底部的数字.我有什么方法可以做到这一点.?

private void updateTextAttributes(String fontName) {
    for (int i = 0; i < getChildCount(); i++) {
        View child = getChildAt(i);
        if (child instanceof EditText) {
            try {
                Field selectorWheelPaintField = NumberPicker.class.getDeclaredField("mSelectorWheelPaint");
                selectorWheelPaintField.setAccessible(true);

                Typeface typeface = Typeface.createFromAsset(getContext().getAssets(), "fonts/SFUIDisplay-" + fontName + ".ttf");

                Paint wheelPaint = ((Paint) selectorWheelPaintField.get(this));
                wheelPaint.setTextSize(mTextSize);
                wheelPaint.setTypeface(typeface);
                wheelPaint.setColor(mTextColor);
                wheelPaint.setAlpha(50); //It does change alpha in the beginning but once I scroll then it also changes center text color

                EditText editText = ((EditText) child);
                editText.setTextColor(mTextColor);
                editText.setTextSize(pixelsToSp(getContext(), mTextSize));
                editText.setTypeface(typeface);
                editText.setAlpha((float) 1.0);


                invalidate(); …
Run Code Online (Sandbox Code Playgroud)

android android-custom-view android-layout android-number-picker

8
推荐指数
0
解决办法
1025
查看次数

Android - NumberPicker滚动/速度更快

如何使数字选择器滚动/速度更快?目前从00分钟到59分钟需要付出很多努力.我已经尝试了一些示例来自Android中Viewpager控制器的减速速度,并将其应用于数字选择器,但我没有看到任何差异.

在此输入图像描述

try {
        Field mScroller;
        mScroller = NumberPicker.class.getDeclaredField("mFlingScroller");
        mScroller.setAccessible(true);
        FixedSpeedScroller scroller = new FixedSpeedScroller(getContext(),null,true);

        // scroller.setFixedDuration(5000);
        // scrollBy(0,1500);

        Log.v("Scroller",""+mScroller); //getting the mFlingScroller field
        mScroller.set(this, scroller);

    } catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) {
        e.printStackTrace();
    }

public class FixedSpeedScroller extends Scroller {

    private int mDuration = 10;

    public FixedSpeedScroller(Context context) {
        super(context);
    }

    public FixedSpeedScroller(Context context, Interpolator interpolator) {
        super(context, interpolator);
    }

    public FixedSpeedScroller(Context context, Interpolator interpolator, boolean flywheel) {
        super(context, interpolator, flywheel);
    }


    @Override
    public void startScroll(int …
Run Code Online (Sandbox Code Playgroud)

android android-scroll android-number-picker

7
推荐指数
0
解决办法
915
查看次数

Android自定义数字选择器问题

我正在构建一个带有一个NumberPicker和两个按钮的库,这些按钮控制数字的向上和向下。我将最小值和最大值设置为NumberPickersetMin、setMax、setValue,然后我在 setDisplayValues 方法中设置了一个有序数组。

我已经构建了一个隔离组件的示例,并且它工作正常。

但是当我尝试在我的应用程序中使用我的组件时,该组件无法按预期工作。当组件显示时,值限制不是正确的值。当我刷新值并移动选择器时,它会设置为正确的值,并且一切正常。但是第一次没有按预期工作。

我试图将NumberPicker隔离放在应用程序中,结果是一样的。任何的想法?

在您看到 14 向下的图像中......假设什么都没有。在其他 14 中假设为 1。选择器的最大值为 14。

NumberPicker 问题

android android-layout android-number-picker

5
推荐指数
0
解决办法
600
查看次数

如何在android中的NumberPicker中自定义数字的值?

我有一个数字选择器,用于以 MB 为单位设置数据限制。现在,我有 numberPicker,包含按顺序排列的数值,如 [1,2,3,....., 2000 MB]。

但我想要一个 numberPicker,它应该包含像 [100,200,300,...., 2000MB] 这样的数值。我怎样才能做到这一点?

android android-number-picker

3
推荐指数
1
解决办法
1万
查看次数

带有Plus(+)字符的Android数字键盘

我正在开发在列表项视图中具有EditText的应用程序。接受数值和带有“ +”号的值列表。提交时,将调用一个函数,该函数将评估该字符串并添加该字符串中存在的值(以“ +”分隔)。现在的问题是我已经设定


'inputType="number'


到EditText框,但是在数字键盘上没有'+'号。我试图使用'digits = 0123456789 +',但是没有用

android android-keypad android-number-picker

2
推荐指数
1
解决办法
1322
查看次数

已关闭 - 设置NumberPicker默认值

我正在制作一个数字选择器对话框,有两个数字选择器,数年和数月.我想在这两个数字选择器中显示一些默认值,除了0,0

在此输入图像描述

码::

    final NumberPicker numberPickerYear = (NumberPicker) expDialog.findViewById(R.id.numberPickerYears);
    final NumberPicker numberPickerMonth = (NumberPicker) expDialog.findViewById(R.id.numberPickerMonths);

    numberPickerYear.setMaxValue(35);
    numberPickerYear.setMinValue(0);
    numberPickerYear.setWrapSelectorWheel(true);

    numberPickerMonth.setMaxValue(11);
    numberPickerMonth.setMinValue(0);
    numberPickerMonth.setWrapSelectorWheel(true);
Run Code Online (Sandbox Code Playgroud)

android android-number-picker

2
推荐指数
2
解决办法
5415
查看次数