关闭

动态添加Fragments

标签: Androidandroid开发Fragment
156人阅读 评论(0) 收藏 举报
分类:

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:73595次
    • 积分:2254
    • 等级:
    • 排名:第16663名
    • 原创:137篇
    • 转载:75篇
    • 译文:1篇
    • 评论:7条
    联系方式

    Pulpit rock

    博客专栏
    博客专栏