根据标准的android-wear用户界面,我正在尝试取消aDelayedConfirmationView上的确认动画,当用户在计时器完成之前再次点击它时。但是,只有一个start()方法提供,如api参考(可下载here)中所反映的那样。
我尝试了一种解决方法,在取消时将setTotalTimeMs()设置为0,这将立即完成动画-但是现在将永久显示完整的圆边界!没有setCircleBorderWidth()方法可以将边框缩小到0,即使有相应的xml声明app:circle_border_width。CircleImageView超类中的setProgress()方法似乎也没有任何作用。
是否有人找到了直接取消确认动画的方法,或者至少找到了将按钮设置为其原始状态(无边框)的解决方法?

最佳答案

为了完整性(尽管是部分的,因为按钮周围的圆圈仍然会粘住,直到您重新充气查看),我张贴了代码,我不得不使用它来停止计数器而不触发操作。

@Override
public void onTimerSelected(View view) {
    if(mRunning) {
        mRunning = false;
        delayedConfirmationView.setTotalTimeMs(0);
    } else {
        view.setPressed(true);
        mRunning = true;
        delayedConfirmationView.start();
    }
}

@Override
public void onTimerFinished(View view) {
    view.setPressed(false);
    if (mRunning) {
        mRunning = false;
        performAction();
    } else {
        delayedConfirmationView.setTotalTimeMs(CONFIRMATION_TIME);
    }
}

10-08 17:55