Latest web development tutorials

Android-Fragmentierung einzelner Frame

Einzelbild Schutt: Fragmente eines einzelnen Rahmens wird für die Geräte mit kleinem Bildschirm entworfen, wie Handheld - Geräte (Mobiltelefone), Android 3.0 oder höher unterstützen.


Beispiele

In diesem Beispiel wird erläutert, wie Sie Ihre eigenen Stücke zu schaffen. Hier schaffen wir zwei Fragmente, von denen einer in der Vorrichtung verwendet wird, ist eine Quer Bildschirm, wenn das Gerät in einem anderen vertikalen Bildschirmzeit verwendet wird. Lassen Sie uns folgen die Schritte beginnen.

Schritt Beschreibung
1 Android Studio IDE Mit einem Android-Anwendung, genannt Einzel-Fragmente, Paketnamen cn.uprogrammer.singlefragments zu erstellen.
2 Ändern Sie die wichtigsten aktiven Datei wie unten MainActivity.java gezeigt. Hier werden wir die Ausrichtung des Gerätes zu überprüfen und auf dieser Basis zwischen verschiedenen Stücke zu wechseln.
3 Erstellen Sie PortraitFragment.java und LandscapeFragment.java zwei Dateien in cn.uprogrammer.singlefragments Paket und die damit verbundenen Verfahren.
4 Erstellen Sie eine Layout-Datei res / Layout / landscape_fragment.xml und res / Layout / portrait_fragment.xml das Layout der beiden Fragmente zu definieren.
5 Ändern res / Layout / activity_main.xml zwei Fragmente enthalten.
6 Definieren Sie einen konstanten Bedarf in der res / Werte / strings.xml in.
7 Starten Sie Android-Emulator die Anwendung und überprüfen Sie die Ergebnisse von Änderungen an der Anwendung auszuführen.

Im Folgenden sind die wichtigsten Inhalte der aktiven Datei src / cn.uprogrammer.singlefragments / MainActivity.java von:

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();
    }
}

Erstellen Sie zwei fragmentierten Dateien LandscapeFragment.java und PortraitFragment.java in Paket cn.uprogrammer.singlefragments.

Im Folgenden ist der Inhalt LandscapeFragment.java Datei:

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);
    }

}

Im Folgenden ist der Inhalt PortraitFragment.java Datei:

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);
    }
}

Erstellen Sie zwei Layoutdateien landscape_fragment.xml und portrait_fragment.xml im Verzeichnis res / Layout-Verzeichnis.

Im Folgenden ist der Inhalt landscape_fragment.xml Datei:

<?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>

Im Folgenden ist der Inhalt portrait_fragment.xml Datei:

<?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>

Im Folgenden ist der Inhalt der res / Layout / activity_main.xml-Datei, die zwei Stücke enthält:

<?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>

Stellen Sie sicher, res / Werte / strings.xml Datei enthält folgende Komponenten:

<?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>

Lassen Sie uns einfach eine modifizierte Einzel Fragmente Anwendungen. Ich nehme an, Sie AVD während der Installationsumgebung erstellt haben. Öffnen Sie das Projekt in der aktiven Datei, klicken Sie in der Symbolleiste auf Bild Icon ausführen, um die Anwendung im Android Studio. Android Studio installieren Sie die Anwendung auf dem AVD und gestartet. Wenn alles gut geht, wird es auf dem Emulator-Fenster angezeigt werden, wie folgt:

Bild

In Übereinstimmung mit der folgenden, um die Richtung des Modus Emulator Bildschirm zu ändern:

  • fn + Steuerung + F11 mac Veränderung in der Landschaft als Portrait und umgekehrt
  • Strg + F11 an den Fenstern
  • Strg + F11 auf Linux

Wenn Sie den Modus ändern, werden Sie den Landschaftsmodus geeignet für die Realisierung der Seite:

Bild

Auf diese Weise kann man durch Verwendung von nicht verwendeten Teile auf der gleichen Veranstaltung können verschiedene Schnittstellen zu erzielen. Sie können mit einer anderen Art von Interface-Komponenten die Schnittstelle nach Ihren Bedürfnissen bauen.