Latest web development tutorials

Android fragmentacja pojedyncza klatka

Jedna klatka gruzu: fragmenty jednej klatki jest przeznaczony dla małych urządzeń, takich jak ekran urządzeń przenośnych (telefony komórkowe), Android 3.0 lub nowszym wsparcia.


Przykłady

Ten przykład wyjaśnia, w jaki sposób tworzyć własne kawałki. Tutaj utworzenia dwóch fragmentów, z których jeden jest wykorzystywany w urządzeniu jest przekrój ekranu, gdy urządzenie jest używane w innym czasie pionowego ekranu. Prześledźmy etapy zacząć.

krok opis
1 Korzystanie z Androidem Studio IDE do tworzenia aplikacji na Androida o nazwie pojedynczych fragmentów, nazwa pakietu cn.uprogrammer.singlefragments.
2 Modyfikacja główny aktywny plik, jak pokazano poniżej MainActivity.java. Tutaj mamy zamiar sprawdzić orientację urządzenia, a na podstawie tego, aby przełączać się między różnymi kawałki.
3 Tworzenie PortraitFragment.java and LandscapeFragment.java dwa pliki w pakiecie cn.uprogrammer.singlefragments i metody związanej.
4 Utwórz plik układu res / layout / landscape_fragment.xml i res / layout / portrait_fragment.xml zdefiniowania układ dwóch fragmentów.
5 Modyfikacja RES / Układ / activity_main.xml zawiera dwa fragmenty.
6 Zdefiniować stałą potrzebę w RES / wartości / strings.xml w.
7 Uruchom emulator systemu Android, aby uruchomić aplikację i sprawdzić wyniki zmian wprowadzonych do wniosku.

Poniżej przedstawiono główne zawartość aktywnego pliku src / cn.uprogrammer.singlefragments / MainActivity.java z:

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

Utwórz dwa pofragmentowane pliki LandscapeFragment.java i PortraitFragment.java w cn.uprogrammer.singlefragments pakietów.

Poniżej znajduje się treść pliku LandscapeFragment.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 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);
    }

}

Poniżej znajduje się plik zawartości 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);
    }
}

Utworzy dwa pliki układ landscape_fragment.xml i portrait_fragment.xml w res / katalogowej układu.

Poniżej znajduje się treść pliku landscape_fragment.xml:

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

Poniżej znajduje się treść pliku portrait_fragment.xml:

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

Poniżej znajduje się treść pliku res / layout / activity_main.xml, który zawiera dwa elementy:

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

Upewnić RES / wartości / plik strings.xml zawiera następujące elementy:

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

Załóżmy, wystarczy uruchomić zmodyfikowane aplikacje pojedynczych fragmentów. Zakładam, że utworzyliśmy AVD podczas środowiska instalacji. Otwórz projekt w aktywnym pliku, kliknij przycisk na pasku narzędzi obraz Ikona, aby uruchomić aplikację w Android Studio. Android Studio zainstalować aplikację na AVD i uruchamia go. Jeśli wszystko pójdzie dobrze, to zostanie wyświetlona w oknie emulatora w następujący sposób:

obraz

Zgodnie z poniższych czynności, aby zmienić kierunek trybie ekranu emulatora:

  • fn + Control + F11 Zmiana mac w krajobrazie jako portret i odwrotnie
  • Ctrl + F11 na oknach
  • Ctrl + F11 na Linuksie

Po zmianie trybu, widać trybie poziomym odpowiedni do realizacji strony:

obraz

W ten sposób można przy tym przypadku przy użyciu nieużywane części w celu osiągnięcia różnych interfejsów. Można zbudować interfejs w zależności od potrzeb, stosując różnego rodzaju elementów interfejsu.