【问题标题】:Android NumberPicker hiding increment and decrement buttonsAndroid NumberPicker 隐藏递增和递减按钮
【发布时间】:2012-05-30 01:18:28
【问题描述】:

我正在使用NumberPicker 并且目标是 API 11 及更高版本(3.0 及更高版本),因此我使用受支持的NumberPicker。这是在计时器应用程序中使用的。我希望能够随意隐藏递增和递减按钮,以便按钮在隐藏时不会占用布局中的空间。我试图这样做:

View increment = secs.getChildAt(0);
increment.setVisibility(View.GONE);
View decrement = secs.getChildAt(2);
decrement.setVisibility(View.GONE);

其中 secs 是我的 NumberPicker 在计时器中的秒数。如果我尝试隐藏显示数字的位置(一个 EditText 小部件),它隐藏得很好,但上面的代码什么也不做。

所以,我的问题是,如何隐藏递增和递减按钮?我真的很想避免像我在其他帖子中读到的那样制作自己的自定义号码选择器,但如果这真的是我愿意尝试的唯一方法。

谢谢!

这是应要求提供的附加代码。 onClick 方法中秒表启动时的代码:

if (stopPush)
{
startTime = System.currentTimeMillis() - elapsedTime;
}
else
{
startTime = System.currentTimeMillis();
}
mHandler.removeCallbacks(startTimer);
mHandler.postDelayed(startTimer, 0);

处理秒表功能的代码:

private Runnable startTimer = new Runnable()
{
public void run()
{
    elapsedTime = System.currentTimeMillis() - startTime;
    updateTimer(elapsedTime);
    mHandler.postDelayed(this, REFRESH_RATE);
}
};

计算和更新秒表时间的代码:

this.millis = (int) (elapsedTime / 100);
this.seconds = (int) (elapsedTime / 1000);
this.minutes = (seconds / 60);
this.hours = (minutes / 60);
millis = millis % 10;
seconds = seconds % 60;
minutes = minutes % 60;
hours = hours % 24;
runOnUiThread(new Runnable()
{
public void run()
{
    hrs.setValue(hours);
}
});
runOnUiThread(new Runnable()
{
public void run()
{
    mins.setValue(minutes);
}
});
runOnUiThread(new Runnable()
{
public void run()
{
    secs.setValue(seconds);
}
});
runOnUiThread(new Runnable()
{
public void run()
{
    mills.setValue((int) millis);
}
});

【问题讨论】:

    标签: java android


    【解决方案1】:

    当您没有在数字选择器上提供最小值和最大值时,按钮(通常)不会显示。

    【讨论】:

    • 如果我不提供最小值和最大值,我会遇到任何其他问题吗?如果未提供可能导致崩溃的默认最小值和最大值?感谢您的建议!只要其他一切仍然正常工作,这绝对足够简单。
    • 我尝试了你的建议,按钮确实消失了,但是当我尝试调用 setValue 来更改数字选择器的值时没有效果。它只是停留在 0。
    • 这不是我所期望的。你能发布一些关于你具体做什么的代码吗?
    • 我想工厂等属于“NumberPicker”类型?您确定您的线程已正确执行吗?当你给那些方法加断点的时候,你输入这些方法吗?
    • 是的,在注释掉 setMin 和 setMax 方法调用部分之前,这一切都可以完美运行。是的,磨坊等是数字选择器的。
    【解决方案2】:

    开发者网站说,

    NumberPicker 是一个允许用户从预定义范围中选择数字的小部件。此小部件有两种风格,向用户呈现哪一种取决于当前主题。

    如果当前主题派生自Theme,则小部件将当前值显示为可编辑的输入字段,上方有一个递增按钮,下方有一个递减按钮。长按按钮可以快速更改当前值。点击输入字段可以输入所需的值。

    如果当前主题源自Theme_HoloTheme_Holo_Light,则小部件将当前值显示为可编辑的输入字段,上面的值较小,下面的值较大。点击较小或较大的值,通过向上或向下动画数字轴来选择它,以使所选值成为当前值。向上或向下翻转允许当前值的多个增量或减量。长按较小和较大的值也可以快速更改当前值。点击当前值可以输入所需的值。

    所以您可以尝试更改主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多