Вращение кнопки при нажатии - PullRequest
0 голосов
/ 03 мая 2018

У меня есть кнопка, которая, когда я нажимаю на нее, поворачивается на 90 градусов вверх. Когда я нажимаю на нее снова, она опускается на 90 градусов (вернуться на предыдущую позицию).

Проблема в том, что если я спамлю кнопку, вращение сходит с ума, и кнопка в конечном итоге указывает в каком-то направлении.

вот код вращения:

public void onClick(View v){
    float deg = myButton.getRotation();
    if(clicked) deg -= 90;
    else deg += 90;
    myButton.animate().rotation(deg);
}

1 Ответ

0 голосов
/ 03 мая 2018

Первая причина, по которой ваша кнопка заканчивается неправильным вращением, заключается в том, что некоторые щелчки учитывают «неправильное» вращение.

Вторым является то, что вы не обновляете логическое значение «нажал» при нажатии кнопки. Я бы порекомендовал использовать ObjectAnimator, так как вам не нужно полагаться на текущую позицию поворота для поворота.

public void onClick(View v){

    ObjectAnimator.ofFloat(myButton, "rotation", clicked ? 90f : 0f).start();    
    clicked = !clicked
}
...