0

Недавно я обновил библиотеку дизайна поддержки до 24.2.0. Я обнаружил, что в этой версии для любого FloatingActionButton, если я долго нажимаю на него, а затем вытаскиваю палец из его области, он все равно останется нажатым (показывая цвет пульсации и сохраняя большую отметку). Как я могу снова позволить этому нормальному состоянию?Как отменить нажатое состояние для FloatingActionButton после перемещения пальца из его области?

Вот пример моего FloatingActionButton:

<android.support.design.widget.FloatingActionButton 
    android:layout_width="56dp" 
    android:layout_height="56dp" 
    android:layout_gravity="bottom|end" 
    android:scaleType="center" 
    android:src="@drawable/act_add" 
    app:elevation="6dp" 
    app:borderWidth="0dp" 
    app:pressedTranslationZ="12dp"/> 
+0

Почтовый код плавающей кнопки. –

+0

@ShabbirDhangot Я добавил код. Тем не менее, я попытался изменить его атрибуты, и тогда я думал, что все 'FloatingActionButton' будут страдать от этой проблемы. – ywwynm

ответ

0

Кажется, проблема библиотеки поддержки проектирования. Android-ошибка была открыта в https://code.google.com/p/android/issues/detail?id=218956 с несколькими обходными решениями. Ниже еще один обходной путь, который я использую в onCreate (где fab является FloatingActionButton), чтобы отменить прессованного состояние после освобождения осязания:

fab.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(final View view, MotionEvent motionEvent) { 
      int action = motionEvent.getAction() & MotionEvent.ACTION_MASK; 
      if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { 
       view.post(new Runnable() { 
        @Override 
        public void run() { 
         view.setPressed(false); 
        } 
       }); 
      } 
      return false; 
     } 
    }); 

(почему-то вызывающему setPressed(false) непосредственно в обработчике вызвавшего событие щелчка не на триггер в некоторых случаях)