Android - Fragmentos Individuais

Single Frame Fragment

O fragmento de quadro único é projetado para dispositivos de tela pequena, como dispositivos de mão (celulares) e deve estar acima da versão Android 3.0.

Exemplo

Este exemplo irá explicar como criar seus próprios fragmentos . Aqui iremos criar dois fragmentos e um deles será usado quando o dispositivo estiver no modo paisagem e outro fragmento será usado no caso do modo retrato. Então, vamos seguir as etapas a seguir para se assemelhar ao que seguimos durante a criação do Exemplo Hello World -

Degrau Descrição
1 Você usará o Android StudioIDE para criar um aplicativo Android e nomeá-lo como MyFragments em um pacote com.example.myfragments , com Activity em branco.
2 Modifique o arquivo de atividade principal MainActivity.java conforme mostrado abaixo no código. Aqui, verificaremos a orientação do dispositivo e, consequentemente, alternaremos entre os diferentes fragmentos.
3 Crie dois arquivos java PM_Fragment.java e LM_Fragement.java sob o pacote com.example.myfragments para definir seus fragmentos e métodos associados.
4 Crie arquivos de layouts res / layout / lm_fragment.xml e res / layout / pm_fragment.xml e defina seus layouts para ambos os fragmentos.
5 Modifique o conteúdo padrão do arquivo res / layout / activity_main.xml para incluir ambos os fragmentos.
6 Defina as constantes necessárias no arquivo res / values ​​/ strings.xml
7 Execute o aplicativo para iniciar o emulador Android e verifique o resultado das alterações feitas no aplicativo.

A seguir está o conteúdo do arquivo de atividade 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();
   }

}

Crie dois arquivos de fragmento LM_Fragement.java e PM_Fragment.java

A seguir está o conteúdo de LM_Fragement.java arquivo -

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 seguir está o conteúdo de PM_Fragement.java arquivo -

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

Crie dois arquivos de layout lm_fragement.xml e pm_fragment.xmlno diretório res / layout .

A seguir está o conteúdo de lm_fragement.xml arquivo -

<?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 seguir está o conteúdo de pm_fragment.xml arquivo -

<?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 seguir estará o conteúdo de res/layout/activity_main.xml arquivo que inclui seus 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>

Certifique-se de ter o seguinte conteúdo de res/values/strings.xml arquivo -

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

Vamos tentar executar nosso modificado MyFragmentsaplicativo que acabamos de criar. Suponho que você tenha criado o seuAVDao fazer a configuração do ambiente. Para executar o aplicativo do Android Studio, abra um dos arquivos de atividade do seu projeto e clique no ícone Executar na barra de ferramentas. O Android Studio instala o aplicativo em seu AVD e o inicia e se tudo estiver bem com a configuração e o aplicativo, ele exibirá a janela do emulador onde você clicará no botão Menu para ver a janela a seguir. Tenha paciência porque pode demorar algum tempo com base na velocidade do seu computador -

Para alterar o modo da tela do emulador, vamos fazer o seguinte -

  • fn+control+F11 no Mac para mudar a paisagem para retrato e vice-versa.

  • ctrl+F11 no Windows.

  • ctrl+F11 no Linux.

Depois de alterar o modo, você poderá ver a GUI que implementou para o modo paisagem conforme abaixo -

Dessa forma, você pode usar a mesma atividade, mas GUIs diferentes por meio de fragmentos diferentes. Você pode usar diferentes tipos de componentes de GUI para diferentes GUIs com base em seus requisitos.