Отключить трекбол Нажмите на Android
Вопрос
Я столкнулся с некоторыми трудностями с реализацией пользовательского диалога прогресса. Несмотря на то, что наложение перехватывает сенсорные события, пользователь все равно может управлять трекболом и щелкнуть элементы, которые должны быть отключены.
Есть ли вокруг этого?
Редактировать: вот решение
//=====================================================================================
protected void showProgressIndicator()
{
progressIndicator_.show();
}
//=====================================================================================
@Override
public boolean onTrackballEvent(MotionEvent event)
{
return progressIndicator_.getVisibility() == View.VISIBLE;
}
//=====================================================================================
protected void hideProgressIndicator()
{
progressIndicator_.hide();
}
А затем в шоу метод
//=====================================================================================
public void show()
{
setVisibility(VISIBLE);
if (animationHandler_ != null)
return;
animationHandler_ = new Handler();
animationHandler_.post(animateTask_);
requestFocus();
}
Решение
Проверить OntrackBalleVent () метод. Затем попробуйте напрямую вернуться в метод, не делая ничего в нем. Это должно убить мероприятие сразу.
Другие советы
Чтобы ваш трекбол ничего не делал, пока ваша активность находится на экране, добавьте следующий код в подкласс активности.
@Override
public boolean dispatchTrackballEvent(android.view.MotionEvent ev) {
return true;
};
Я проверил это на телефоне Google Nexus One, и он работает нормально.
Переопределить OntrackBalleVent () не работает. Попробуйте переопределить DispatchTrackBalleVent (), ничего не делайте в нем, просто вернитесь;.