Prefacio
Después de aprender Java y Android durante casi un año, los resultados del período deben ser completar independientemente un cliente de Android y garantizar la estabilidad de su versión de línea principal. Durante el período, me encontré con mucho pozo, y también aprendí mucho conocimiento de Android con mi hermano. Pero la gente siempre tiene que abrazar los cambios y no hacerse demasiado cómodos. Aquí resumimos los fragmentos más utilizados en los elementos anteriores.
Introducción al fragmento
El fragmento puede entenderse como un comportamiento o parte de la interfaz de usuario en la actividad, y debe anidarse en la actividad. Pero un fragmento tiene su propio archivo de diseño XML independiente y, por lo tanto, tiene un buen embalaje.
Crear fragmento
Cree un fragmento y cree una actividad.
Los archivos de diseño XML son los mismos que otros archivos de diseño.
<? Xml versión = "1.0" coding = "utf-8"?> <LinearLayout xmlns: android = "http://schemas.android.com/apk/android" android: lazout_width = "match_parent" android: el flout_height = " Match_pareat "Android: Orientation =" Vertical "> <TextView Android: id ="@+id /textView "Android: Layout_width =" wrap_content "android: la yout_height =" wrap_content "android: text =" @string /testView " / / / / / / / > <Botón Android: id = "@+id /botón" Android: Layout_width = "wrap_content" Android: Layout_height = "wrap_content" android: text = "@string /botón" /> < /linealLayout>
En el código Java, en general, los siguientes métodos del ciclo de vida se pueden implementar según sea necesario: Fragmento:
1. Onattach (): Cuando el fragmento depende de la actividad, puede obtener el manejo de la actividad en este método para lograr la comunicación entre el fragmento y la actividad.
2. OnCreate (): Inicialice el marco.
3. OnCreateView (): el sistema llama a este método al dibujar la interfaz de usuario por primera vez para fragmentos.
4. OnActivityCreated (): Después de ser ejecutado por la función de Actividad del host en la función OnCreate, puede realizar la propia instancia de widget de Fragment y el procesamiento de lógica comercial en este método.
5. OnDestoryView (): Llame cuando el marco comience a ser destruido.
6. OnStart (): Llame cuando el fragmento pueda ser visible.
También hay muchas otras funciones de devolución de llamada que se utilizan para manipular el ciclo de vida del fragmento.
Ciclo de vida de fragmento
Cada fragmento tiene su propio conjunto de métodos de devolución de llamada del ciclo de vida y maneja sus propios eventos de entrada de usuario. El ciclo de vida correspondiente se muestra en la figura a continuación:
Agregar fragmento a la actividad
En primer lugar, debe asegurarse de que la acitividad admite el fragmento, por lo que la actividad generalmente debe heredar de la fragmentación de la facturidad. Por lo general, hay dos métodos para agregar fragmento a la actividad: estática y dinámica.
El método estático agrega fragmento directamente al archivo de diseño XML de actividad, como se muestra a continuación:
<? Xml versión = "1.0" coding = "utf-8"?> <LinearLayout xmlns: android = "http://schemas.android.com/apk/android" android: lazout_width = "match_parent" android: el flout_height = " Match_pareant "Android: Baselinealigned =" False "Android: Orientation =" Horizontal "> <Fragment Android: id ="@+id/first "Android: name =" com. Layout_height = "Match_Parent" Android: Layout_weight = "1" /> <fragment android: id = "@+id /segundo" android: name = "com.example.se condfragment" android: lectout_width = "0dp" Android: Layout_Height = "Match_Parent" Android: Layout_weight = "1" /> < /LinearLayout>
Cuando el atributo de Android: nombre en <fragment> especifica la clase de fragmentos instanciado en el diseño, cuando se crea el diseño de actividad, instanció cada cuadro en el archivo de diseño y los llama a llamarlos para obtener cada uno para obtener cada uno. . El sistema inserta directamente la vista devuelta por la ubicación del elemento <fragment>
Nota: Cada fragmento requiere una identificación única. Hay tres formas de proporcionar identificaciones para fragmentos: hay tres maneras:
Método dinámico
Use fragmenttranscation. Puede usar la API de FragmentTranscation para operar el fragmento de actividad (como agregar, eliminar o reemplazar el fragmento). El código de referencia es el siguiente:
FragmentManager FragmentManager = GetFragmentManager () FragmentTransaction FragmentTraction = FragmentManager.BeginTraction ();
El primer parámetro de la función add () es el grupo de vista del fragmento, que se especifica por la ID de recursos (ID de recursos). Una vez cambiado a través de fragmentos de transcatación, debe entrar en vigencia con los cambios visuales Commit ().
Fragmentos de comunicación
Los fragmentos no deben comunicarse directamente, y la interacción entre ellos debe realizarse a través de la actividad del huésped. Hay tres formas de interactuar con el fragmento y la acitividad:
1. La actividad crea un fragmento con parámetros.
2. La actividad mantiene el mango del objeto del fragmento, que puede llamarse directamente el método público del fragmento a través del mango.
3. El fragmento puede obtener el mango del oyente definido en la función Onattach.
Crea el marco con parámetros
En algunos casos específicos, el fragmento puede requerir parámetros específicos para inicializarse. Dado que el fragmento debe tener solo un constructor de ginseng, puede considerar usar el método estático de NewInstance para crear un fragmento con los parámetros. El código de ejemplo es el siguiente:
Importar android.os.bundle; ;; "NUM", NUM);
Simplemente puede cargar un parámetro con parámetros en la actividad:
FragmentTransaction ft = GetSupportFragmentManager ().
El método de llamar fragmento
Debido a que la actividad puede obtener el mango de fragmento incrustado, este método se puede llamar directamente a través del mango del fragmento.
Public Class TestFragment extiende el fragmento {public void dosomething (string param) {// haz algo en fragmento}}} En la actividad, puede llamar a este método directamente a través del mango del objeto del fragmento:
Public Class Maination extiende FragmentActivity {@Override Void OnCreate (Bundle SaveDancestate) {super.oncreate (SaveDIncestate); Oyente de fragmentos
Si el fragmento necesita compartir eventos con actividad, este método debe usarse. El fragmento define una interfaz, y esta interfaz es implementada por actividad. La actividad de la interfaz se logrará en el método Onattach ().
El código de interfaz definido en fragmento es el siguiente:
Importar android.support.v4.app.fragment; Use para hacer comunicar la interfaz pública OnItemSelectListener {public void onrSesitemSelect (String Link);} // almacene el oyente (actividad) que tendrá eventos disparados una vez que el fragmento se adjunta @Override public void onattach (actividad de actividad) {super.onattach (actividad de actividad (actividad de actividad (actividad ); Oyente.onrssitemselect ("algún enlace");}}Implementar esta interfaz en la actividad:
Importar android.support.v4.app.fragmentActivity; DetellFragment);} // Ahora podemos definir la acción en activarlo cuando el evento de fragmento archiva @Override public void onrSesitemSelect (enlace de cadena) {if (fragment! = null && fragment.isinLayout ()) {fragment.setText (enlace (enlace (enlace );}}}