The real use of fragment is to dynamically add it while the program is running.
1. project directory.
2. res/layout/main. xml
[Java] <? Xml version = "1.0" encoding = "UTF-8"?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent"
Android: orientation = "horizontal">
</LinearLayout>
<? Xml version = "1.0" encoding = "UTF-8"?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent"
Android: orientation = "horizontal">
</LinearLayout> 3.res/ layout/fragment1.xml
[Java] <? Xml version = "1.0" encoding = "UTF-8"?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent"
Android: background = "#00FF00"
Android: orientation = "vertical">
<TextView
Android: id = "@ + id/lblFragment1"
Android: layout_width = "fill_parent"
Android: layout_height = "wrap_content"
Android: text = "This is fragment #1"
Android: textColor = "#000000"
Android: textSize = "25sp"/>
</LinearLayout>
<? Xml version = "1.0" encoding = "UTF-8"?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent"
Android: background = "#00FF00"
Android: orientation = "vertical">
<TextView
Android: id = "@ + id/lblFragment1"
Android: layout_width = "fill_parent"
Android: layout_height = "wrap_content"
Android: text = "This is fragment #1"
Android: textColor = "#000000"
Android: textSize = "25sp"/>
</LinearLayout> 4.res/ layout/fragment2.xml
[Java] <? Xml version = "1.0" encoding = "UTF-8"?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent"
Android: background = "# FFFE00"
Android: orientation = "vertical">
<TextView
Android: layout_width = "fill_parent"
Android: layout_height = "wrap_content"
Android: text = "This is fragment #2"
Android: textColor = "#000000"
Android: textSize = "25sp"/>
</LinearLayout>
<? Xml version = "1.0" encoding = "UTF-8"?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent"
Android: background = "# FFFE00"
Android: orientation = "vertical">
<TextView
Android: layout_width = "fill_parent"
Android: layout_height = "wrap_content"
Android: text = "This is fragment #2"
Android: textColor = "#000000"
Android: textSize = "25sp"/>
</LinearLayout> 5. Fragment1.java
[Java] package net. horsttnann. Fragments;
Import net. horsttnann. Fragments. R;
Import android. app. Fragment;
Import android. OS. Bundle;
Import android. view. LayoutInflater;
Import android. view. View;
Import android. view. ViewGroup;
Public class Fragment1 extends Fragment {
@ Override
Public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState ){
// --- Inflate the layout for this fragment ---
Return inflater. inflate (R. layout. fragment1, container, false );
}
}
Package net. horsttnann. Fragments;
Import net. horsttnann. Fragments. R;
Import android. app. Fragment;
Import android. OS. Bundle;
Import android. view. LayoutInflater;
Import android. view. View;
Import android. view. ViewGroup;
Public class Fragment1 extends Fragment {
@ Override
Public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState ){
// --- Inflate the layout for this fragment ---
Return inflater. inflate (R. layout. fragment1, container, false );
}
}
6. Fragment2.java
[Java] package net. horsttnann. Fragments;
Import android. app. Fragment;
Import android. OS. Bundle;
Import android. view. LayoutInflater;
Import android. view. View;
Import android. view. ViewGroup;
Public class Fragment2 extends Fragment {
@ Override
Public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState ){
// --- Inflate the layout for this fragment ---
Return inflater. inflate (R. layout. fragment2, container, false );
}
}
Package net. horsttnann. Fragments;
Import android. app. Fragment;
Import android. OS. Bundle;
Import android. view. LayoutInflater;
Import android. view. View;
Import android. view. ViewGroup;
Public class Fragment2 extends Fragment {
@ Override
Public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState ){
// --- Inflate the layout for this fragment ---
Return inflater. inflate (R. layout. fragment2, container, false );
}
}
7. FragmentsActivity. java
[Java] package net. horsttnann. Fragments;
Import net. horsttnann. Fragments. R;
Import android. app. Activity;
Import android. app. FragmentManager;
Import android. app. FragmentTransaction;
Import android. OS. Bundle;
Import android. view. Display;
Import android. view. WindowManager;
Public class FragmentsActivity extends Activity {
/** Called when the activity is first created .*/
@ Override
Public void onCreate (Bundle savedInstanceState ){
Super. onCreate (savedInstanceState );
SetContentView (R. layout. main );
FragmentManager fragmentManager = getFragmentManager ();
FragmentTransaction fragmentTransaction = fragmentManager
. BeginTransaction ();
// --- Get the current display info ---
WindowManager wm = getWindowManager ();
Display d = wm. getDefaultDisplay ();
If (d. getWidth ()> d. getHeight ()){
// --- Landscape mode ---
Fragment1 fragment1 = new Fragment1 ();
// Android. R. id. content refers to the content
// View of the activity
FragmentTransaction. replace (android. R. id. content, fragment1 );
} Else {
// --- Portrait mode ---
Fragment2 fragment2 = new Fragment2 ();
FragmentTransaction. replace (android. R. id. content, fragment2 );
}
// --- Add to the back stack ---
FragmentTransaction. addToBackStack (null );
FragmentTransaction. commit ();
}
}
Package net. horsttnann. Fragments;
Import net. horsttnann. Fragments. R;
Import android. app. Activity;
Import android. app. FragmentManager;
Import android. app. FragmentTransaction;
Import android. OS. Bundle;
Import android. view. Display;
Import android. view. WindowManager;
Public class FragmentsActivity extends Activity {
/** Called when the activity is first created .*/
@ Override
Public void onCreate (Bundle savedInstanceState ){
Super. onCreate (savedInstanceState );
SetContentView (R. layout. main );
FragmentManager fragmentManager = getFragmentManager ();
FragmentTransaction fragmentTransaction = fragmentManager
. BeginTransaction ();
// --- Get the current display info ---
WindowManager wm = getWindowManager ();
Display d = wm. getDefaultDisplay ();
If (d. getWidth ()> d. getHeight ()){
// --- Landscape mode ---
Fragment1 fragment1 = new Fragment1 ();
// Android. R. id. content refers to the content
// View of the activity
FragmentTransaction. replace (android. R. id. content, fragment1 );
} Else {
// --- Portrait mode ---
Fragment2 fragment2 = new Fragment2 ();
FragmentTransaction. replace (android. R. id. content, fragment2 );
}
// --- Add to the back stack ---
FragmentTransaction. addToBackStack (null );
FragmentTransaction. commit ();
}
}
8. debugging.
:
From the column of horsttnann