Событие движения ACTION_DOWN запускается до того, как state_pressed становится истинным - PullRequest
0 голосов
/ 11 июля 2019

У меня есть кнопка, с которой связан стиль, который устанавливает цвет текста на селектор состояния цвета, который выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:state_pressed="true"
        android:color="@color/colorPrimary" />

    <item android:state_pressed="false"
          android:color="@color/colorAccent"/>

</selector>

Я создаю текст для кнопки, используя SpannableStringBuilder, я вставляю рисованный объект в Spanable в начале, используя ImageSpan.

Однако, это рисование не относится к селектору состояния цвета, как указано в ответе на этот вопрос: Не работает селектор рисования в ImageSpan?

Итак, я решил подключить onTouchListener к кнопке, чтобы прослушивать ACTION_DOWN и ACTION_UP, чтобы заново настроить сменное переключение цвета рисования в ImageSpan, чтобы отразить цвет текста, который был вызван селектор состояния цвета.

Это "Работает", но цвет прорисовки в диапазоне изменяется за несколько миллисекунд до цвета текста. Это должно означать, что состояние кнопок state_pressed устанавливается в true вскоре после получения события движения ACTION_DOWN в моем onTouchListener, что приводит в бешенство, потому что пользовательский интерфейс теперь выглядит глючно (где рисуемый цвет меняет цвет за несколько миллисекунд до текста "догоняет").

Кто-нибудь знает, как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...