HoloEverywhere v1.5

от автора


Вчера, немного поматерясь, мной таки был сделан релиз HoloEverywhere 1.5.

Для тех, кто не в курсе: HoloEverywhere — бекпорт Holo темы с Android 4.1 на 2.1 и выше. Да и не только темы.

Нововведенний достаточно много, краткий список под катом.

  1. Изменена лицензия с MIT license на LGPLv3.
    Нет, вы не должны открывать код приложения при использовании HoloEverywhere.
    Вы должны открыть код библиотеки, только если вы изменили ее
  2. Поддержка вложенных фрагментов неограниченного уровня (в том числе и через xml)
  3. Устранена ошибка в поведении Spinner, когда тот при малой высоте экрана мог не давать прокрутить попап список до конца
  4. Исправлено поведение PreferencePanel на больших экранах
  5. Раз уж заговорили про Preferences — они отделены в отдельный модуль, теперь они не в ядре библиотеки
  6. Ага, модули. Полностью переписана система модулей, хотя логика осталась старой
  7. Официальная поддержка RoboGuice (правда, из-за бага в коде RoboGuice с один велосипедом, смотрите вики)
  8. Мне в конец надоело разбиратся с ключами (keys) в preference framework. Поэтому я добавил поддержку id, как в layout:
    Пример

    <SwitchPreference holo:id="@+id/mypreference" holo:text="Text" />

    Хотя, это было еще в 1.4.2, но рассказать для «непосвященных» решил только сейчас.

  9. Теперь ThemeManager может генерировать для вас собственные флаги, не только встроенные в HoloEverywhere. Этот прием используется в Preference addon для резолва темы для вьюх.
  10. Ну и заодно: .Wallpaper темы и соответсвующий флаг в ThemeManager
  11. Существенно улучшен LayoutInflater, теперь можно не регистрировать каждую вьюху по отдельности, а зарегистрировать весь java-package.
  12. Уменьшен размер элементов списка в PopupMenu (был указан аттрибут не того размера)
  13. Кеширование requestWindowFeature до того момента, как будут подключены все модули к Активити. Сделано для обеспечения обратной совместимости кода
  14. После вызова super.onCreate или ручной инициализации активити посредством Activity#forceInit теперь нельзя подключать дополнительные модули.
  15. Поддержка ExpandableListView
  16. ThemeManager сохраняет instanceState между перезапусками активити. Правда, если вы вручную работаете с savedInstanceState в on(Post)Create, то посмотрите начало метода onCreate в DemoActivity. Иначе работать не будет.
  17. Activity#setTheme теперь может принимать бинарный сет их ThemeManager (что-то типа setTheme(ThemeManager.MIXED | ThemeManager.FULLSCREEN)
  18. Удален аццкий велосипед из ProgressBar, который подменял системные Drawable’s на наши. DrawableCompat
  19. Немного улучшен RingtonePreference
  20. Теперь инстанс приложения всегда должен наследовать (или указан напрямую) от org.holoeverywhere.app.Application. Я решил, что проще сделать так, чем доказывать каждому второму, почему у него все время креши и разногласие в данных.
  21. Activity#getSupportMenuInflater() при Mixed теме использует Dark тему, выборку которой он перекладывает на плечи ThemeManager
  22. Fragment.instantiate(Context, String) устаревший, используйте Fragment.instantiate(Class)
    Исправлено поведение DialogFragment.findInstance при makeIfNeed = true
    ButtonBehavior для AlertDialog — позволяет выключить автоскрытие диалога после нажатия на кнопку в button bar
    Исправлен двойной вызов DialogFragment#onCreateDialog
    Ну и еще по всякой мелочи

ссылка на оригинал статьи http://habrahabr.ru/post/173547/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *