Как я могу реализовать горизонтальное смахивание без использования библиотеки поддержки?

Если мне не нужно предоставлять поддержку более старым версиям Android и я могу просто использовать API 17, есть ли альтернативный способ реализовать широко разрекламированный горизонтальный жест (например, в gmail) и не использовать viewpager, fragmentsactivities (в новых API уже есть фрагменты. ..) и т. д., чтобы избавиться от библиотеки поддержки?

Все учебники, которые я нашел для горизонтального смахивания, показывают, как это сделать, используя библиотеку поддержки и FragmentActivities. Иначе в чем преимущество новых API, если я не могу использовать их родные классы и методы?


person Danny    schedule 16.02.2013    source источник


Ответы (2)


избавиться от библиотеки поддержки

ViewPager существует только в библиотеке поддержки Android. Библиотека поддержки Android предназначена не только для резервных копий.

новые API уже имеют фрагменты

ViewPager можно использовать собственные фрагменты API уровня 11, хотя вам может потребоваться создать собственный PagerAdapter. Или вы можете использовать ViewPager без каких-либо фрагментов, используя только обычные объекты View или ViewGroup для страниц.

есть ли альтернативный способ реализации широко разрекламированного горизонтального свайпа

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

Существует также HorizontalScrollView, HorizontalListView с открытым исходным кодом, и так далее.

person CommonsWare    schedule 16.02.2013
comment
Итак, я думаю, я должен просто дать лучший ответ на этот вопрос и продолжить работу с библиотекой поддержки. У меня нет особых причин не использовать viewpager, кроме того факта, что я хотел оставить библиотеку поддержки приложений бесплатной. Поскольку горизонтальное смахивание так рекомендуется в рекомендациях для Android, я подумал, что есть альтернативный способ, изначально встроенный в новые API, которые я игнорировал. Я думал, что подход, который обычно описывается, использует библиотеку поддержки, поскольку большинство разработчиков, вероятно, хотят, чтобы приложение было совместимо со старой версией Android, которая все еще широко распространена. - person Danny; 16.02.2013
comment
@CommonsWare У меня возникла проблема при использовании ViewPager. Не могли бы вы взглянуть на это... stackoverflow.com/questions/30303488/ - person Arun Badole; 20.05.2015

Вы можете написать свой собственный FragmentPagerAdapter, который работает с android.app.Fragment вместо android.support.v4.app.Fragment, чтобы свести к минимуму зависимость от библиотеки поддержки. Вам нужно только создать свой класс для адаптера (на основе FragmentPagerAdapter из библиотеки поддержки, источник которой можно найти в папке <android-sdks>/extras/android/support/v4/src/java/android/support/v4/app/). Только изменение находится в разделе импорта - вы должны ссылаться на Fragment, FragmentManager и FragmentTransaction из android.app вместо android.support.v4.app.

person Matěj Hrazdíra    schedule 19.08.2013