SlidingMenu и ViewPager с API13 (Соты)

У меня возникла странная проблема с SlidingMenu Library и ViewPager, когда они работают на устройствах с Android 3.2 (Honeycomb).

Проблема появляется, когда мы "переключаем" SlidingMenu, чтобы показать меню, которое скрыто в левой части приложения. Когда мы делаем это, и ContentView, и BehingContentView перестают отвечать на сенсорные события.

Думая, что это была проблема, связанная с моим приложением, я скачал последнюю версию библиотеки ABS и библиотеки SlidingMenu и настроил новый проект, используя встроенный пример, который поставляется с SlidingMenu, и, к моему удивлению, такое же поведение произошло с ViewPager пример.

Вот шаги, которые я сделал:

  1. Настройте эмулятор, используя API уровня 13 и 7" WSVGA (планшет);
  2. Скачать ABS и SlidingMenu из GIT;
  3. Установить новый проект, используя библиотеку совместимости android-support-v41 (также протестирована с android-support-v4);
  4. Решил проблему " getSupportActionBar() не определено ", как описано здесь: https://github.com/jfeinstein10/SlidingMenu/issues/145;
  5. Запустите " Пример приложения " и выберите пример " ViewPager ";
  6. Проведите страницы вправо и влево, не открывая меню;
  7. Откройте меню. Убедитесь, что списки не прокручиваются должным образом;
  8. Закройте меню. Убедитесь, что просмотрщик больше не отвечает на сенсорные события;

Обратите внимание, что такое поведение сообщалось только на устройствах Android 3.2. У нас одно и то же приложение, работающее на устройствах 2.x и 4.x, без этой проблемы.

Кроме того, заметил, что пример приложения, которое было загружено из Google Play, не имеет этой проблемы.

У кого-нибудь есть совет? Большое спасибо!

Редактировать 1

Протестировано на реальном устройстве и подтвердило поведение. У кого-нибудь есть совет?

1 ответ

Решение

У меня была та же проблема, и я исправил ее, используя следующий обходной путь.

Замените эти строки в SlidingMenu.java:

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public void manageLayers(float percentOpen) {
    if (Build.VERSION.SDK_INT < 11) return;

с:

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public void manageLayers(float percentOpen) {
    if (Build.VERSION.SDK_INT < 14) return;
Другие вопросы по тегам