动态添加Fragments

转载 2016年05月31日 21:29:37

fragment的真正用处是在程序运行过程中动态地添加。

1. 新建工程。

2. res/layout/main.xml

[java] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="horizontal" >  
  6.   
  7. </LinearLayout>  
3. res/layout/fragment1.xml
[java] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:background="#00FF00"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <TextView  
  9.         android:id="@+id/lblFragment1"  
  10.         android:layout_width="fill_parent"  
  11.         android:layout_height="wrap_content"  
  12.         android:text="This is fragment #1"  
  13.         android:textColor="#000000"  
  14.         android:textSize="25sp" />  
  15.   
  16. </LinearLayout>  
4. res/layout/fragment2.xml
[java] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:background="#FFFE00"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <TextView  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:text="This is fragment #2"  
  12.         android:textColor="#000000"  
  13.         android:textSize="25sp" />  
  14.   
  15. </LinearLayout>  
5. Fragment1.java
[java] view plaincopy
  1. public class Fragment1 extends Fragment {  
  2.     @Override  
  3.     public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  4.             Bundle savedInstanceState) {  
  5.         // ---Inflate the layout for this fragment---  
  6.         return inflater.inflate(R.layout.fragment1, container, false);  
  7.     }  
  8. }  
6. Fragment2.java
[java] view plaincopy
  1. public class Fragment2 extends Fragment {  
  2.     @Override  
  3.     public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  4.             Bundle savedInstanceState) {  
  5.         // ---Inflate the layout for this fragment---  
  6.         return inflater.inflate(R.layout.fragment2, container, false);  
  7.     }  
  8. }  

7. FragmentsActivity.Java

[java] view plaincopy
  1. public class FragmentsActivity extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     @Override  
  4.     public void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.main);  
  7.   
  8.         FragmentManager fragmentManager = getFragmentManager();  
  9.         FragmentTransaction fragmentTransaction = fragmentManager  
  10.                 .beginTransaction();  
  11.   
  12.         // ---get the current display info---  
  13.         WindowManager wm = getWindowManager();  
  14.         Display d = wm.getDefaultDisplay();  
  15.         if (d.getWidth() > d.getHeight()) {  
  16.             // ---landscape mode---  
  17.             Fragment1 fragment1 = new Fragment1();  
  18.             // android.R.id.content refers to the content  
  19.             // view of the activity  
  20.             fragmentTransaction.replace(android.R.id.content, fragment1);  
  21.         } else {  
  22.             // ---portrait mode---  
  23.             Fragment2 fragment2 = new Fragment2();  
  24.             fragmentTransaction.replace(android.R.id.content, fragment2);  
  25.         }  
  26.         // ---add to the back stack---  
  27.         fragmentTransaction.addToBackStack(null);  
  28.         fragmentTransaction.commit();  
  29.   
  30.     }  
  31.   
  32. }  

8. 调试。




http://blog.csdn.net/manoel/article/details/7577349



动态添加Fragments

原址:http://blog.csdn.net/manoel/article/details/7577349 fragment的真正用处是在程序运行过程中动态地添加。 1. 新建工...
  • xjntosc
  • xjntosc
  • 2013年04月27日 16:11
  • 659

【Android Training - 03】使用Fragments建立动态的UI [ Lesson 0 - 章节概览 ]

Building a Dynamic UI with Fragments [使用fragments来建立一个动态的UI] 学习这章节的先决条件: 了解Activity的基本概念 ...

【Android Training - 03】使用Fragments建立动态的UI [ Lesson 2 - 新建一个Fragment ]

Creating a Fragment 你可以把fragment当作activity的一部分,它有自己的lifecycle,它会接受自己的输入事件。你可以在activity运行的时候增加或者...

Android training(1)-Building a Dynamic UI with Fragments(用碎片创造一个动态的UI)(A)

为了在android上面创建动态的或者复合面板型的用户UI,你需要把你的组件或者活动行为放到一个模块中,这个模块便可以进出Activity。Fragment类可以帮助你创建这种模块,他表现的就想一个内...

Android Fragments详解五:与Activity通讯,把条目添加到动作栏

与activity通讯   尽管fragment的实现是独立于activity的,可以被用于多个activity,但是每个activity所包含的是同一个fragment的不同的实例。  ...

Fragments创建一个动态的用户界面及其Fragments如何互相通讯

创建动态多界面UI,需要把UI元素和动作封装到可以调用和隐藏的模块中。在此可以用Fragment把这些模块封装起来,就像Activity一样管理自己的布局元素和生命周期。 Fragment指定自己的布...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态添加Fragments
举报原因:
原因补充:

(最多只允许输入30个字)