我正在使用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);
}
});
答案 0 :(得分:4)
如果您没有在数字选择器上提供最小值和最大值,则按钮(通常)不会显示。
答案 1 :(得分:0)
开发者网站说,
NumberPicker是一个小部件,使用户可以从预定义的范围中选择一个数字。这个小部件有两种风格,其中一种呈现给用户取决于当前主题。
如果当前主题派生自Theme
,则窗口小部件将当前值显示为可编辑输入字段,上面有一个增量按钮,下面是一个减量按钮。长按按钮可以快速更改当前值。点击输入字段可以输入所需的值。
如果当前主题派生自Theme_Holo
或Theme_Holo_Light
,则窗口小部件将当前值显示为可编辑输入字段,其中上面的值较小,下面的值较大。点击较小或较大的值可通过向上或向下设置数字轴的动画来选择它,以使所选值为当前值。向上或向下投掷允许当前值的多个增量或减量。长按较小和较大的值也可以快速更改当前值。点击当前值可以输入所需的值。
所以你可以尝试改变主题。