Отметить не сенсорным слишком медленно для нескольких кликов?

Я сделал клавиатуру из кнопок. Когда вы нажимаете не ту кнопку, она создает анимацию, как и для правильной кнопки. Все это хорошо работает. Проблема в том, что пользователь нажимает на кнопки как маньяк, прямо как в файтинге. Затем анимация остановится до завершения. Чтобы предотвратить это, я попытался установить FLAG_NOT_TOUCHABLE в начале метода. Но на самом деле это не имеет никакого эффекта, если вы нажимаете кнопки слишком быстро.

    public void onClickKeyboard (View view) {

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);


    if (myAnswers[gameState].charAt(s.length())== ' ') {
          s = s + " ";
    }
        s = s + view.getTag().toString();

        if (s.equalsIgnoreCase(myAnswers[gameState].substring(0,s.length()))){

            ViewCompat.animate(view).alpha(0).setDuration(200).start();

            //  view.setVisibility(View.INVISIBLE);

                preguntaViewInput = myQuestions[gameState] + s.substring(0,1).toUpperCase()+s.substring(1).toLowerCase();

            preguntaView.setText(preguntaViewInput, TextView.BufferType.SPANNABLE);

        } else {

            s = s.substring(0, s.length() - 1); // sense aixo lapp crash quan sapreten 10 lletres incorrectes seguides
            b = (Button) view;

            view.setBackgroundResource(R.drawable.button_keyboard_wrong);
            ViewCompat.animate(view).rotationBy(360).scaleY((float) 0.2).scaleX((float) 0.2).setDuration(200).withEndAction(new Runnable() {
                @Override
                public void run() {

                    ViewCompat.animate(b).rotationBy(360).scaleY((float) 1).scaleX((float) 1).setDuration(200).withEndAction(new Runnable() {
                        @Override
                        public void run() {

                                    b.setBackgroundResource(R.drawable.buttonpurchase);



                        }
                    });


                }
            });




        }




    if (s.toString().equalsIgnoreCase(myAnswers[gameState])) {
        Spannable ss = (Spannable) preguntaView.getText();

        ss.setSpan(new ForegroundColorSpan(Color.GREEN), myQuestions[gameState].length(), s.length() + myQuestions[gameState].length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

        buttonNext.setBackgroundColor(Color.argb(64, 0, 250, 0));
        String nextString = "correct";
        buttonNext.setText(nextString);
        buttonNext.setAlpha(0);
        buttonNext.setVisibility(View.VISIBLE);
        ViewCompat.animate(buttonNext).alpha(1).setDuration(300).start();
    }


    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

}

Посмотрите эта тема о множественных кликах, надеюсь, это поможет

Tamir Abutbul 03.02.2019 15:29

Это определенно помогло бы, но у меня много кнопок, и я искал что-то более простое. Также я не понимаю, почему, если в начале и в конце есть флаг, это не работает.

Croqueta Fregida Amb Pastanaga 03.02.2019 15:43

Можешь выложить фото своей кастомной клавиатуры?

Tamir Abutbul 03.02.2019 15:44
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
66
0

Другие вопросы по теме