Fragment 在Android SDK1.6上实现

来源:互联网 发布:linux进程间通信方式 编辑:程序博客网 时间:2024/06/06 09:28

   《Fragment For All》  标明了Fragment最低sdk是1.6,SDK根目录\extras\android\compatibility\v4下可以找到android-support-v4.jar包,在这个目录中还有一个demo用来学习。

在Android 2.3.3上测试了Fragment的简单使用。效果如下:

 

                                       

先看一下添加jar包,如图:

                                     

 

 

 

在Eclipse中选中工程,alt+Enter ->java Build Path->Add External JARS 再选择文件即可。

看一下布局文件:

 

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="horizontal" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent" android:id="@+id/rootView">  
  5.     <LinearLayout android:id="@+id/leftView"  
  6.         android:orientation="vertical" android:layout_width="0dp"  
  7.         android:layout_weight="1" android:layout_height="fill_parent"   
  8.         android:background="#c0c0c0c0"/>  
  9.     <fragment  
  10.         class="com.nedu.android_ui_17_fragmentv4.DemoRightFramgment"  
  11.         android:id="@+id/rightView" android:layout_weight="2"  
  12.         android:layout_width="0px" android:layout_height="match_parent"   
  13.         />  
  14.   
  15. </LinearLayout>  


         布局文件中使用了id为leftView的LinearLayout和class="com.nedu.android_ui_17_fragmentv4.DemoRightFramgment"的fragment。这样的布局是有目的的,通过这两种view来了解加载Fragment的两种方法。1、使用fragment标签。2、使用FragmentManager。(注:class="com.nedu.android_ui_17_fragmentv4.DemoRightFramgment"可以写成android:name="com.nedu.android_ui_17_fragmentv4.DemoRightFramgment")

Android_UI_17_Fragmentv4Activity.java如下:

[java] view plaincopyprint?
  1. public class Android_UI_17_Fragmentv4Activity extends FragmentActivity {  
  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=getSupportFragmentManager();  
  9.         FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();         
  10.         DemoLeftFragment leftFragment=new DemoLeftFragment();         
  11.         fragmentTransaction.add(R.id.leftView, leftFragment);  
  12.   
  13.         fragmentTransaction.commit();  
  14.     }  
  15. }  


 

         首先要注意,实现的Activity必须是继承:FragmentActivity,而3.0不需要。取得FragmentManager 实例使用getSupportFragmentManager(),而3.0使用getFragmentManager()方法。3.0中getFragmentManager()方法已经加入到Activity中了,而3.0以前版本要通过继承FragmentActivity获得类似功能。

 

 DemoRightFramgment.java如下:

   

[java] view plaincopyprint?
  1. public class DemoRightFramgment extends Fragment {  
  2.     @Override  
  3.     public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  4.             Bundle savedInstanceState) {  
  5.         return inflater.inflate(R.layout.right_fragment, container,false);  
  6.     }  
  7. }  

继承Fragment 的实现与3.0以后版本一样。

 

相关源码下载:http://www.devdiv.com/forum.php?mod=viewthread&tid=103348&extra=

/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*转自:http://blog.csdn.net/xyz_lmn/article/details/6931008
*/

0 0
原创粉丝点击