Estoy desarrollando una aplicación que es compatible con Android >= 4.0. Utiliza fragmentos de la android.app paquete. Como me estoy enfrentando problemas con el anterior fragmento de la aplicación en la versión 4.0, como este, que ya son fijos en el apoyo de la biblioteca, estoy pensando en volver a cambiar el fragmento de la implementación de la biblioteca de soporte técnico para obtener más confiable y consistente aplicación.

¿Cuál es su opinión sobre esto? Están utilizando fragmentos de la biblioteca de compatibilidad, incluso a pesar de que ya están disponibles, cuando el desarrollo para Android 4?

  • Esta es una buena pregunta (+1 porque me hace curioso). También no hay una buena explicación en la web para esto. Estoy usando la biblioteca de soporte para mi aplicación y me pregunto si estoy equivocado o no, porque yo no noto ningún error al compilar o durante la prueba.
  • La respuesta por brillenheini demuestra que esto no es un principalmente basado en la opinión de respuesta.
InformationsquelleAutor brillenheini | 2013-06-25

5 Comentarios

  1. 90

    Desde mi experiencia, utilizando el mismo fragmento de aplicación en todos los dispositivos Android es una gran ventaja. No podía deshacerse de todos los NullPointerExceptions cuando el estado se guarda en Android 4.0 con nativos fragmentos, con el apoyo de la biblioteca que se han ido. También no pude ver ninguna desventaja hasta el momento con este enfoque.

    Así que mi respuesta a mi propia pregunta ahora es: Cuando el desarrollo para Android 4.x, el uso de los fragmentos de la biblioteca de compatibilidad es una buena idea. El apoyo de la biblioteca tiene errores corregidos que aún están presentes en mayores fragmento de implementaciones y se actualiza con frecuencia con más correcciones de errores.

    • Así que ¿cuál es el propósito de la android.app.Fragment entonces? Si usted puede agregar esto a tu respuesta here con un poco más de explicación, yo estaría totalmente satisfecho. Gracias!
    • La razón es, probablemente, histórico. Por favor, ver mi respuesta actualizada allí.
    • En aras de la exhaustividad, parece ser que hay cosas que el apoyo de los fragmentos no puede hacer (por ejemplo, la animación con objectAnimator, incluso si el objetivo real sistema operativo lo soporta). Que, en caso de que usted está usando ViewPager, significa que usted tiene que usar adaptadores de v13 apoyo de la biblioteca, de lo contrario no puedes tener ambas viewpager y voltear la animación.
    • También hay que tener cuidado, a partir de agosto de 2014, la v13 de la biblioteca no puede hacer Anidada Fragmentos.
    • ¿Por qué los chicos de google optó por el uso de la v13 de la biblioteca para iosched app github.com/google/iosched/blob/master/android/src/main/java/com/… , que debe tener algo de razón
    • Es este sigue siendo válido con android 6.x salir?
    • Agradable de escuchar las experiencias, esto añade mucho valor a la de los demás. Todo lindo respuestas.

  2. 40

    Un gran motivo para seguir con la SupportFragment por un tiempo es que usted no tiene acceso a la ChildFragmentManager hasta la API 17. La biblioteca de soporte técnico le dará un apoyo a la versión de que el niño fragmento de administrador.

    Esto se convierte en un gran problema si usted tiene fragmentos que contienen otros fragmentos. Esto es común en las aplicaciones de la tableta con una buena dosis de complejidad y/o total de su arquitectura se basa en una distribución de fichas o utiliza el cajón de navegación.

  3. 21

    Yo también estaba frustrado al tener que incluir el apoyo a las bibliotecas, a pesar de la orientación de Android 4.0+ – pero parece que oficialmente se recomienda:

    El Android Support Library paquete contiene varias bibliotecas que
    pueden ser incluidos en su aplicación. Cada una de estas bibliotecas apoya
    un rango específico de Android versiones de la plataforma y un conjunto de características.

    Esta guía explica las características más importantes de la versión y de apoyo
    proporcionados por las Bibliotecas de Soporte técnico para ayudarle a decidir a cuál de ellas le
    debe incluir en su aplicación. En general, se recomienda incluir
    la v4 apoyo y v7 appcompat las bibliotecas, debido a que son compatibles con una amplia
    la gama de versiones de Android y ofrecen Api para usuarios recomendados
    la interfaz de patrones.

    http://developer.android.com/tools/support-library/features.html

    • Esto debe ser aceptado respuesta, a pesar de el hecho de que @brillenheini proporcionado una respuesta a sí mismo/a sí misma. Contesta a la pregunta con la mejor precisión y la concisión.
  4. 4

    Mi humilde opinión, si usted está planeando desarrollar para 4.0, yo recomendaría ir con las bibliotecas nativas desde el archivo ejecutable más pequeño. Es cierto que usted podría encontrarse con problemas de errores en las primeras versiones, pero creo que la mayoría de estos debe ser bastante trivial para evitar. También la biblioteca de compatibilidad se supone asignar a los nativos de fragmentos en caso de que se ejecutan en 4.0 y superior de todos modos. Así que usted podría terminar encima de tener que luchar con este tipo de problemas, de todos modos.
    El problema con el apoyo de las bibliotecas es que usted tiene un montón de las clases que aparecen 2x (una vez en el paquete de soporte de la estructura, y una vez en el «nativo» de la estructura del paquete) que hace que el desarrollo un poco más engorroso.

    Sin embargo, si usted quiere también la liberación de su aplicación pre 4.0 entonces no hay ninguna forma de evitar el apoyo de la biblioteca. También, ya que hay alrededor de 38% de todos los usuarios en 2.3 se puede hacer sentido de los negocios para incluir esta versión del sistema operativo. En tal caso, puede utilizar la biblioteca de soporte en combinación con Jake Wartons ActionBarSherlock (o con gafas de apoyo ActionBar Biblioteca una vez que es finalmente puesto en libertad).

    • Gracias por tu respuesta. Porque necesito ViewPager, tengo que incluir la biblioteca de compatibilidad de todos modos. También, el apoyo fragmento no intenta cambiar a los nativos de la aplicación, si está disponible. Eso es lo que el docs decir.
    • Sí, la cosa es que (como @brillenheini dijo) que para tener el ViewPager necesita v4, por lo que incluso si usted está apuntando sólo v13+ dispositivos es probable que terminar de tener la v4 de todos modos.
    • Acabo de descubrir que también (ViewPager necesidades v4) en mi API 21 y en la aplicación. Meh :-/

Dejar respuesta

Please enter your comment!
Please enter your name here