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.