2014-12-22 3 views
2

Текущее значение minSdkVersion для моего приложения: 16, targetSdkVersion, compileSdkVersion: 21.Использование библиотек поддержки при разработке для Android 4.1 и выше

Когда я впервые запустил приложение, minSdkVersion был 10, а книга, которую я изучал, использовала библиотеку поддержки v4.

Я прошел через мое приложение, и я обнаружил, что это импорт я использую из библиотеки поддержки v4:

ActionBarDrawerToggle 
DialogFragment 
DrawerLayout 
Fragment 
FragmentActivity 
FragmentManager 
FragmentStatePagerAdapter 
ListFragment 
NavUtils 
ViewPager 

Так как я поднял minSdkVersion, я не думаю, что мне нужно больше использовать версии поддержки большинства из них. Я считаю, что мне все равно придется использовать ViewPager и DrawerLayout.

В developer страницы говорят:

Внимание: При использовании классов из библиотеки поддержки, быть уверены, что вы импортировать класс из соответствующего пакета.

Например, при применении класса ActionBar:

android.support.v7.app.ActionBar при использовании библиотеки поддержки.

android.app.ActionBar при разработке только для уровня API 11 или выше.

Итак, мой вопрос:

1) Могу ли я просто использовать импорт похожи на android.app.Fragment для всех указанных выше, так как мой уровень API минимально 16? (За исключением ViewPager и DrawerLayout)

2) Для ViewPager и DrawerLayout, есть ли разница между использованием v4 или v7 или другую версию библиотеки поддержки?

Любые советы приветствуются. Благодаря!

ответ

2

Во-первых, с Fragment и все связанные с ним атрибуты (FragmentManager, FragmentTransaction, & с) самое главное заключается в использовании импорта последовательно (то есть, не смешивать и сочетать). Думаю, это то, что хочет сделать документация.

Это говорит ...

Вы мог своп из использований android.support.v4.app.Fragment с android.app.Fragment, если вы хотите использовать собственные версии этих классов вместо поддержки тех, но будьте осторожны: библиотека поддержки также добавляет некоторые методы и обратные вызовы, которые отсутствовали в уровне API 16 (одним из важных примеров является getChildFragmentManager(). В основном, все дело в том, доступны ли все функции фрагментов, которые вы используете, для собственных фрагментов на всех уровнях API, которые вы будет поддерживать.

Кроме того, использование библиотеки поддержки Фрагменты означают, что они должны вести точно так же во всех версиях для Android, в то время как они могут быть различиями в собственных реализациях.

В нашем конкретном случае мы решили использовать библиотеку поддержки, но YMMV.

Что касается второго вопроса, я не думаю, что существует V7-специфичный ViewPager (по крайней мере, я так думаю). Библиотеки v7 представляют собой надстройки (appcompat, gridlayout, & c).

+0

Спасибо за ответ! Я не думаю, что мое приложение использует любые методы, которые не были бы совместимы с родными версиями. Но если мне потом придется вернуться к версиям поддержки, есть ли недостатки в использовании версий библиотеки поддержки (кроме дополнительных зависимостей)? – OnThisDayFiftyYearsAgo

+0

@OnThisDayFiftyYearsAgo Не особенно. Я думаю, что это может быть предпочтительнее, так как вы будете использовать тот же код фрагмента во всех версиях Android. – matiash

+0

Существует хороший момент, чтобы поддерживать использование библиотеки поддержки v7 в том, что они обновляют lib, чтобы поддерживать новейшие Android-версии (на многие из многих). Поэтому, как только вы интегрируете библиотеки в свой проект, все, что вам нужно сделать, это обновить настройки градиента. Я хотел бы рекомендовать вам использовать поддержку v7 libs. FYI v7 использует v4 в некотором случае. –

Смежные вопросы