Вопрос

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

Есть ли вокруг этого?

Редактировать: вот решение

//=====================================================================================
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 (), ничего не делайте в нем, просто вернитесь;.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top