SlidingMenu и ViewPager с API13 (Соты)
У меня возникла странная проблема с SlidingMenu Library и ViewPager, когда они работают на устройствах с Android 3.2 (Honeycomb).
Проблема появляется, когда мы "переключаем" SlidingMenu, чтобы показать меню, которое скрыто в левой части приложения. Когда мы делаем это, и ContentView, и BehingContentView перестают отвечать на сенсорные события.
Думая, что это была проблема, связанная с моим приложением, я скачал последнюю версию библиотеки ABS и библиотеки SlidingMenu и настроил новый проект, используя встроенный пример, который поставляется с SlidingMenu, и, к моему удивлению, такое же поведение произошло с ViewPager пример.
Вот шаги, которые я сделал:
- Настройте эмулятор, используя API уровня 13 и 7" WSVGA (планшет);
- Скачать ABS и SlidingMenu из GIT;
- Установить новый проект, используя библиотеку совместимости android-support-v41 (также протестирована с android-support-v4);
- Решил проблему " getSupportActionBar() не определено ", как описано здесь: https://github.com/jfeinstein10/SlidingMenu/issues/145;
- Запустите " Пример приложения " и выберите пример " ViewPager ";
- Проведите страницы вправо и влево, не открывая меню;
- Откройте меню. Убедитесь, что списки не прокручиваются должным образом;
- Закройте меню. Убедитесь, что просмотрщик больше не отвечает на сенсорные события;
Обратите внимание, что такое поведение сообщалось только на устройствах 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;