2013-12-18 3 views
0

Когда я положил свои кнопки в GridLayout, сенсорный ответ визуально отличается от обычного. При быстром касании изменение состояния по умолчанию в нажатом состоянии выглядит как нормальное, но когда я касаюсь и удерживаю, происходит очень заметная задержка до того, как будет показана нажатая кнопка. Любая идея о том, почему?Медленная реакция кнопки в Android GridLayout

Я попытался переместить кнопку за пределы GridLayout, а затем снова ведет себя как нормальный - он немедленно переходит в нажатое состояние. Я также пробовал android:longClickable="false", но это не решило проблему.

Вот мой простой тест:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <Button 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:text="1" 
     android:textStyle="bold" 
     android:textSize="40dp" 
     android:background="@drawable/num_button"/> <!-- Same result without this drawable--> 
</GridLayout> 

Мой тест устройство является Google Nexus 10 работает KitKat.

+0

Может быть связано с размером вашего вводимого коэффициента. Насколько они большие ? – OcuS

+0

Я просто попытался удалить свой собственный фон, но медленный ответ был таким же. – Guppel

ответ

0

У меня была та же проблема, но я нашел исправление в подобном сообщении здесь, на SO.

Вы должны переопределить кнопку и добавьте следующий код:

public boolean onTouchEvent (MotionEvent event) 
{ 
    if (event.getAction() == MotionEvent.ACTION_DOWN) setPressed(true); 
    return super.onTouchEvent(event); 
} 
+0

Спасибо! У вас есть ссылка на другой SO-пост, который вы упомянули? – Guppel

+0

Думаю, я нашел это сам, здесь: http://stackoverflow.com/questions/5040303/how-can-i-make-a-button-more-responsive – Guppel

Смежные вопросы