Latest web development tutorials

la fragmentación de Android solo cuadro

escombros de un solo cuadro: fragmentos de un solo cuadro está diseñado para los dispositivos de pantalla pequeña, como los dispositivos portátiles (teléfonos móviles), Android 3.0 o posterior apoyo.


Ejemplos

En este ejemplo se explica cómo crear sus propias piezas. Aquí creamos dos fragmentos, uno de los cuales se utilizan en el dispositivo es una cruz de pantalla cuando el dispositivo se utiliza en otro tiempo de la pantalla vertical. Vamos a seguir los pasos comienzan.

paso descripción
1 El uso de Android Studio IDE para crear una aplicación para Android, llamado Fragmentos individuales, cn.uprogrammer.singlefragments nombre del paquete.
2 Modificar el archivo activo principal como se muestra a continuación MainActivity.java. Aquí vamos a comprobar la orientación del dispositivo, y en base a esto para cambiar entre las diferentes piezas.
3 Crear PortraitFragment.java y LandscapeFragment.java dos archivos en cn.uprogrammer.singlefragments paquete y método asociado.
4 Crear un archivo de diseño res / layout / landscape_fragment.xml y res / layout / portrait_fragment.xml para definir el diseño de los dos fragmentos.
5 Modificar res / layout / activity_main.xml para contener dos fragmentos.
6 Definir una necesidad constante en la res / valores / strings.xml en.
7 Lanzar emulador de Android para ejecutar la aplicación y verificar los resultados de los cambios realizados en la aplicación.

Los siguientes son los principales contenidos del archivo src activo / cn.uprogrammer.singlefragments / MainActivity.java de:

package cn.uprogrammer.singlefragment;

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

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Configuration config = getResources().getConfiguration();

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

        /**
         * 检测设备方向,并做相应地操作。
         */
        if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            /**
             * 设备的横屏模式。
             */
            LandscapeFragment ls_fragment = new LandscapeFragment();
            fragmentTransaction.replace(android.R.id.content, ls_fragment);
        }else{
            /**
             * 设备的竖屏模式。
             */
            PortraitFragment pm_fragment = new PortraitFragment();
            fragmentTransaction.replace(android.R.id.content, pm_fragment);
        }
        fragmentTransaction.commit();
    }
}

Crear dos archivos fragmentados y LandscapeFragment.java PortraitFragment.java en cn.uprogrammer.singlefragments paquete.

El siguiente es el archivo LandscapeFragment.java contenido:

package cn.uprogrammer.singlefragment;

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


public class LandscapeFragment extends Fragment {

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

}

El siguiente es el archivo de contenido PortraitFragment.java:

package cn.uprogrammer.singlefragment;

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

public class PortraitFragment extends Fragment {

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

Crear dos archivos de diseño y landscape_fragment.xml portrait_fragment.xml en el directorio res directorio / diseño.

El siguiente es el archivo landscape_fragment.xml contenido:

<?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="28sp" />

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

</LinearLayout>

El siguiente es el archivo portrait_fragment.xml contenido:

<?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="28sp" />

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

</LinearLayout>

El siguiente es el contenido de res / archivo de diseño / activity_main.xml, que contiene dos piezas:

<?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:id="@+id/landscape_fragment"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent" />

    <fragment
        android:id="@+id/portrait_fragment"
        android:layout_weight="2"
        android:layout_width="0dp"
        android:layout_height="match_parent" />

</LinearLayout>

Garantizar res / valores de archivo / strings.xml contiene lo siguiente:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Single Fragment</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="landscape_message">这是横屏模式碎片</string>
    <string name="portrait_message">这是竖屏模式碎片</string>
</resources>

Vamos a ejecutar una modificados aplicaciones individuales fragmentos. Asumo que ha creado AVD en el entorno de instalación. Abra el proyecto en el archivo activo, haga clic en la barra de herramientas imagen Icono para ejecutar la aplicación en Android Studio. Android Estudio instalar la aplicación en la AVD y la inicia. Si todo va bien, se mostrará en la ventana de emulación de la siguiente manera:

imagen

De acuerdo con lo siguiente para cambiar la dirección del modo de pantalla del emulador:

  • fn + Control + F11 cambio mac en el paisaje como retrato y viceversa
  • Ctrl + F11 en las ventanas
  • Ctrl + F11 en Linux

Cuando se cambia el modo, verá el modo horizontal adecuado para la realización de la página:

imagen

De esta manera, se puede en el mismo evento mediante el uso de piezas no utilizadas para lograr diferentes interfaces. Usted puede construir la interfaz de acuerdo a sus necesidades usando un tipo diferente de componentes de la interfaz.