fragmentação Android único frame
único quadro de detritos: fragmentos de um único quadro é projetado para os dispositivos de tela pequena, tais como dispositivos portáteis (telemóveis), suporte a Android 3.0 ou posterior.
Exemplos
Este exemplo explica como criar suas próprias peças. Aqui criamos dois fragmentos, um dos quais é usado no dispositivo é uma tela de cruz, quando o dispositivo é utilizado num outro tempo de tela vertical. Vamos seguir os passos começar.
passo | descrição |
---|---|
1 | Usando Android Studio IDE para criar um aplicativo Android, com o nome de solteiro Fragments, cn.uprogrammer.singlefragments nome do pacote. |
2 | Modificar o principal arquivo ativo como mostrado abaixo MainActivity.java. Aqui nós estamos indo para verificar a orientação do dispositivo, e com base nisso para alternar entre diferentes peças. |
3 | Criar dois arquivos PortraitFragment.java e LandscapeFragment.java no pacote cn.uprogrammer.singlefragments e método associado. |
4 | Criar um res de arquivo layout / layout / landscape_fragment.xml e res / layout / portrait_fragment.xml para definir o layout dos dois fragmentos. |
5 | Modificar res / layout / activity_main.xml para conter dois fragmentos. |
6 | Definir uma necessidade constante na res / valores / strings.xml in. |
7 | Lançar emulador Android para executar o aplicativo e verificar os resultados das alterações feitas no aplicativo. |
A seguir estão os principais conteúdos do src arquivo ativo / 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(); } }
Criar dois arquivos fragmentados LandscapeFragment.java e PortraitFragment.java em cn.uprogrammer.singlefragments pacote.
O seguinte é o arquivo LandscapeFragment.java conteúdo:
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); } }
O seguinte é o arquivo de conteúdo 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); } }
Criar dois arquivos de layout landscape_fragment.xml e portrait_fragment.xml no diretório res diretório / layout.
O seguinte é o arquivo landscape_fragment.xml conteúdo:
<?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>
O seguinte é o arquivo portrait_fragment.xml conteúdo:
<?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>
O seguinte é o conteúdo da res / layout arquivo / activity_main.xml, que contém duas partes:
<?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>
Certifique-res / valores / arquivo strings.xml contém o seguinte:
<?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 apenas executar algumas aplicações individuais Fragmentos modificados. Presumo que você criou AVD durante o ambiente de instalação. Abra o projeto no arquivo ativo, clique na barra de ferramentas Ícone para executar o aplicativo no Android Studio. Estúdio Android instalar o aplicativo no AVD e inicia-lo. Se tudo correr bem, ele será exibido na janela do emulador da seguinte forma:
De acordo com o seguinte para mudar a direção do modo de tela emulador:
- fn + control + F11 mudança mac na paisagem como retrato e vice-versa
- ctrl + F11 nas janelas
- ctrl + F11 no Linux
Quando você alterar o modo, você verá o modo paisagem adequado para a realização da página:
Desta forma, você pode ao mesmo evento usando peças não utilizadas para alcançar diferentes interfaces. Você pode construir a interface de acordo com suas necessidades usando um tipo diferente de componentes de interface.