Вид(ы) не виден на Android Jelly Bean
В настоящее время я разрабатываю приложение, с помощью которого можно получить и просмотреть расписание. Для отображения расписания я использовал исходные файлы java TimeRulerView (а также BlocksLayout и BlockView) из приложения Google IO 2011, потому что мне понравился внешний вид. Исходный код можно найти здесь: https://github.com/underhilllabs/iosched2011 . (Google заменил там один с кодом IO2012).
С тех пор как мой Galaxy Nexus обновил tot Jelly Bean (4.1.1) вчера TimeRulerView (и / или один из других) больше не показывается.
Самое странное, что они на самом деле все еще там, но там не видно. Я вижу полосу прокрутки той длины, которая обычно есть у таймерулера. Кроме того, когда я обычно нажимаю на блок в представлении, я получаю небольшое всплывающее окно, и это все еще происходит, когда я не вижу таймерулер или блок.
Я протестировал оригинальное приложение IO2011 на моем JB GN, но там тоже ничего не видно, так что проблема лежит в пределах (одного из) вида (ОВ) или пути JellyBean представляет вид (ы) (проект масло может быть?).
Смотрите здесь ( https://dl.dropbox.com/u/7102660/TimeRulerView_JellyBean_problem.zip ) для скриншотов на ICS (приложение работает), JB (приложение не работает) и приложении GoogleIO2011.
2 ответа:
Благодаря Chris answer я поиграл с настройками аппаратного ускорения. Я также использую код iosched2011 и только должен был удалить строку
android:layerType="software"
из моего представления BlocksLayout внутри block_content.XML-файл .
Может ли это быть как-то связано с аппаратным ускорением? Я только недавно столкнулся с проблемой на паре телефонов с ICS,но не все телефоны/устройства были затронуты. Добавление тега hardwareAccelerated в мой манифест также не исправило проблему, и мне пришлось определить его на определенных представлениях, которые я не хотел бы аппаратно ускорять. Мое решение использовало android: layerType = "программное обеспечение" в моих XML-макетах и setLayerType (LAYER_TYPE_SOFTWARE, null) в java код.
EDIT: тестируя это больше, он не исправил мою проблему, используя setLayerType на Jelly Bean. Установка типа слоя в программное обеспечение на ICS действительно исправила мою проблему. Единственный способ, которым я мог заставить представления отображаться, - это установить для всего приложения или конкретного действия значение
android:hardwareAccelerated="false"
.