MIUI10 android textview setOnTouchListener ACTION_UP не вызывается - PullRequest
0 голосов
/ 21 января 2019

Я запутался в этой странной проблеме. Обычно на многих телефонах это не проблема. Но я пробовал три телефона MIUI10 с этой проблемой, а другие системы с ней не сталкивались. Возможно, это системная ошибка MIUI10?

Если у вас есть телефон MIUI10, помогите проверить его.

И Как я могу решить эту проблему, чтобы быть совместимым со многими устройствами? Любая помощь приветствуется.

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

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

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="50dp"
        android:padding="15dp"
        android:background="#1ad9ca"
        android:textColor="#ffffff"
        android:text="Hold to talk" />

</RelativeLayout>

findViewById(R.id.text).setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        switch (motionEvent.getAction()) {
            case MotionEvent.ACTION_DOWN:
                Log.d(TAG, "ACTION_DOWN");
                break;
            case MotionEvent.ACTION_MOVE:
                Log.d(TAG, "ACTION_MOVE");
                break;
            case MotionEvent.ACTION_UP:
                Log.d(TAG, "ACTION_UP");
                break;
            case MotionEvent.ACTION_CANCEL:
                Log.d(TAG, "ACTION_CANCEL");
                break;
        }

        return true;
    }
});

А на моем устройстве Удерживайте TextView в течение нескольких секунд и поднимите руку , вызывается ACTION_CANCEL, а ACTION_UP не вызывается . Вот журналы:

D/MainActivity: ACTION_DOWN
D/MainActivity: ACTION_MOVE
D/MainActivity: ACTION_MOVE
D/MainActivity: ACTION_CANCEL

И Я хочу сделать некоторую логику в случае ACTION_UP , а не в случае ACTION_CANCEL.

Информация о тестовом устройстве:

Phone name: Xiaomi 8
Android system version: Android 9
MIUI system version: MIUI 10.1.2.0

1 Ответ

0 голосов
/ 11 июля 2019

Проверено на моем телефоне miui, эта проблема возникает только в версии 10.2.x.x, при обновлении до 10.3.3.0 проблема больше не возникает.

При отправке события ACTION_UP miui перехватывает это событие и изменяет действие с ACTION_UP на ACTION_CANCEL, но на экране ничего не отображается, похоже на ошибку в 10.2.x.x.

...