2011-11-08 37 views
7

Estoy desarrollando una aplicación con android: minSdkVersion = "11". Por lo que sé, ViewPager se implementa dentro de la Biblioteca de compatibilidad. Tengo éxito para hacer que funcione en mi aplicación mediante la adición de la biblioteca android-apoyo-v4.jar, pero ahora estoy obligado a utilizarUsando android.app.Fragment con ViewPager en Android 3.0+

android.support.v4.app.FragmentActivity

porque Necesito getSupportFragmentManager() para FragmentPagerAdapter, en lugar de new android.app.Activity getFragmentManager().

También tengo que usar

android.support.v4.app.Fragment

en lugar de

android.app.Fragment

Se aunque funciona, definitivamente no me gusta este enfoque. Destruye el diseño de la aplicación, y no quiero tener ninguna biblioteca de compatibilidad en mi proyecto de nivel 11 de API.

¿Existen otras maneras más nativas de usar ViewPager en aplicaciones Honeycomb +?

+0

La respuesta aceptada debería [cambiar] (http://stackoverflow.com/a/16067755/1747491) ahora que se lanza 'v13'. – theblang

Respuesta

13

Puede que no haya sido el caso en el momento en que se indicó la respuesta aceptada, pero está import android.support.v13.app.FragmentStatePagerAdapter; en el sample code. Si utiliza la biblioteca support-v13, el constructor toma una versión no compatible del FragmentManager. Tenga en cuenta que el ViewPager aún debe provenir de v4.

También agregaré que v4 significa la biblioteca de soporte para la versión de Android 4+ (Donut 1.6), y v13 significa la biblioteca de soporte para la versión de Android 13+ (Honeycomb 3.2). Solo un hecho que no fue inmediatamente obvio para mí al menos. Lo que significa que las API utilizadas en v4/v13 son compatibles y las versiones vuelven a ese punto.

7

Copie FragmentPagerAdapter en su código y modifíquelo para usar android.app.Fragment, etc. O implemente su propio PagerAdapter, no depende en absoluto de los fragmentos.

+0

¿Quiere decir que también puedo usar el código de ViewPager en mi aplicación, después de modificarlo? ¿Dónde puedo obtener la fuente de la Biblioteca de compatibilidad? ¿Es la única forma de Honeycomb, nada más nativo o universal? – morphium

+0

La descarga incluye la fuente. Si lo instaló desde el administrador del SDK, estaría en $ SDK_ROOT/extras/android/compatibility/v4/src. No sé a qué te refieres con 'nativo o universal', pero 'ViewPager' no es parte del SDK de Android, tienes que agregarlo a tu proyecto para usarlo, ya sea en la biblioteca (jar) o en el formulario fuente. –

+0

He copiado FragmentPagerAdapter y lo he hecho funcionar con android.app.Fragment. Pero este enfoque aún asume que tengo que usar la biblioteca android-support-v4.jar. ¿Es un enfoque normal en absoluto? – morphium

Cuestiones relacionadas