Android: fragmentos individuales

Single Frame Fragment

El fragmento de un solo cuadro está diseñado para dispositivos de pantalla pequeña, como dispositivos de sujeción manual (móviles) y debe estar por encima de la versión de Android 3.0.

Ejemplo

Este ejemplo le explicará cómo crear sus propios Fragmentos . Aquí crearemos dos fragmentos y uno de ellos se usará cuando el dispositivo esté en modo horizontal y otro fragmento se usará en el caso de modo retrato. Así que sigamos los siguientes pasos de manera similar a lo que seguimos al crear el ejemplo de Hello World :

Paso Descripción
1 Utilizará Android StudioIDE para crear una aplicación de Android y nombrarla como MyFragments en un paquete com.example.myfragments , con Activity en blanco.
2 Modifique el archivo de actividad principal MainActivity.java como se muestra a continuación en el código. Aquí verificaremos la orientación del dispositivo y, en consecuencia, cambiaremos entre diferentes fragmentos.
3 Cree dos archivos java PM_Fragment.java y LM_Fragement.java en el paquete com.example.myfragments para definir sus fragmentos y métodos asociados.
4 Cree los archivos de diseños res / layout / lm_fragment.xml y res / layout / pm_fragment.xml y defina sus diseños para ambos fragmentos.
5 Modifique el contenido predeterminado del archivo res / layout / activity_main.xml para incluir ambos fragmentos.
6 Defina las constantes requeridas en el archivo res / values ​​/ strings.xml
7 Ejecute la aplicación para iniciar el emulador de Android y verifique el resultado de los cambios realizados en la aplicación.

A continuación se muestra el contenido del archivo de actividad principal modificado MainActivity.java -

package com.example.myfragments;

import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.res.Configuration;
import android.os.Bundle;

public class MainActivity extends Activity {

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      Configuration config = getResources().getConfiguration();

      FragmentManager fragmentManager = getFragmentManager();
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

      /**
         * Check the device orientation and act accordingly
      */
		
      if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
         /**
            * Landscape mode of the device
         */
         LM_Fragement ls_fragment = new LM_Fragement();
         fragmentTransaction.replace(android.R.id.content, ls_fragment);
      }else{
         /**
            * Portrait mode of the device
         */
         PM_Fragement pm_fragment = new PM_Fragement();
         fragmentTransaction.replace(android.R.id.content, pm_fragment);
      }
      fragmentTransaction.commit();
   }

}

Crea dos archivos de fragmentos LM_Fragement.java y PM_Fragment.java

A continuación se muestra el contenido de LM_Fragement.java archivo -

package com.example.myfragments;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
   * Created by TutorialsPoint7 on 8/23/2016.
*/

public class LM_Fragement extends Fragment {
   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      /**
         * Inflate the layout for this fragment
      */
      return inflater.inflate(R.layout.lm_fragment, container, false);
   }
}

A continuación se muestra el contenido de PM_Fragement.java archivo -

package com.example.myfragments;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
   * Created by TutorialsPoint7 on 8/23/2016.
*/

public class PM_Fragement extends Fragment {
   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      /**
         * Inflate the layout for this fragment
      */
      return inflater.inflate(R.layout.pm_fragment, container, false);
   }
}

Crea dos archivos de diseño lm_fragement.xml y pm_fragment.xmlen el directorio res / layout .

A continuación se muestra el contenido de lm_fragement.xml archivo -

<?xml version="1.0" encoding="utf-8"?>
   <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:background="#7bae16">
   
   <TextView
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="@string/landscape_message"
      android:textColor="#000000"
      android:textSize="20px" />

<!-- More GUI components go here  -->

</LinearLayout>

A continuación se muestra el contenido de pm_fragment.xml archivo -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="horizontal"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="#666666">
   
   <TextView
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="@string/portrait_message"
      android:textColor="#000000"
      android:textSize="20px" />

<!-- More GUI components go here  -->

</LinearLayout>

A continuación se mostrará el contenido de res/layout/activity_main.xml archivo que incluye sus fragmentos -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="horizontal">

   <fragment
      android:name="com.example.fragments"
      android:id="@+id/lm_fragment"
      android:layout_weight="1"
      android:layout_width="0dp"
      android:layout_height="match_parent" />
   
   <fragment
      android:name="com.example.fragments"
      android:id="@+id/pm_fragment"
      android:layout_weight="2"
      android:layout_width="0dp"
      android:layout_height="match_parent" />

</LinearLayout>

Asegúrate de tener el siguiente contenido de res/values/strings.xml archivo -

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">My Application</string>
   <string name="landscape_message">This is Landscape mode fragment</string>
   <string name="portrait_message">This is Portrait mode fragment></string>
</resources>

Intentemos ejecutar nuestro modificado MyFragmentsaplicación que acabamos de crear. Supongo que habías creado tuAVDmientras realiza la configuración del entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar en la barra de herramientas. Android Studio instala la aplicación en su AVD y la inicia y si todo está bien con su configuración y aplicación, mostrará la ventana del Emulador donde hará clic en el botón Menú para ver la siguiente ventana. Tenga paciencia porque puede tomar algún tiempo según la velocidad de su computadora.

Para cambiar el modo de la pantalla del emulador, hagamos lo siguiente:

  • fn+control+F11 en Mac para cambiar el paisaje a retrato y viceversa.

  • ctrl+F11 en Windows.

  • ctrl+F11 en Linux.

Una vez que haya cambiado el modo, podrá ver la GUI que ha implementado para el modo horizontal como se muestra a continuación:

De esta manera, puede usar la misma actividad pero diferentes GUI a través de diferentes fragmentos. Puede utilizar diferentes tipos de componentes de GUI para diferentes GUI según sus requisitos.