我正在开发健身应用程序,当用户选择他们想要包含在锻炼中的动作时,动作选择用于填充ListView。当用户单击按钮开始锻炼时,计时器会出现在列表下方但仍位于同一视图中。我希望用户能够在同一视图上看到锻炼列表和计时器。我想知道是否有任何方法可以使计时器更具美感吸引力,同时保持它位于ListView上。就像一个警告,我做了一个快速“绑定”计时器,因为我第二天提出我的应用程序,这是我需要添加的最后一件事。以下是我用于计时器的方法:
public Runnable updateTimerThread = new Runnable() {
public void run() {
timeInMilliseconds = SystemClock.uptimeMillis() - startTime;
updatedTime = timeSwapBuff + timeInMilliseconds;
int secs = (int) (updatedTime / 1000);
int mins = secs / 60;
secs = secs % 60;
int milliseconds = (int) (updatedTime % 1000);
timerValue.setText("" + mins + ":"
+ String.format("%02d", secs) + ":"
+ String.format("%03d", milliseconds));
timerValue.setVisibility(View.VISIBLE);
customHandler.postDelayed(this, 0);
}
};
我在这里调用方法,时钟使用回调运行:
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startButton.setVisibility(View.GONE);
// start clock
startTime = SystemClock.uptimeMillis();
customHandler.postDelayed(updateTimerThread, 0);
}
});
// labeled as End Workout button
pauseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startButton.setVisibility(View.GONE);
pauseButton.setVisibility(View.GONE);
congrats.setVisibility(View.VISIBLE);
exitApp.setVisibility(View.VISIBLE);
// stop clock
timeSwapBuff += timeInMilliseconds;
customHandler.removeCallbacks(updateTimerThread);
所有这些都发生在同一个片段中。提前感谢任何建议。
答案 0 :(得分:0)
您似乎只想在列表视图上覆盖计时器的视图 - 只需使用FrameLayout(或者如果您的目标仅限于4.4+设备,则使用新的叠加API)