《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 plain copy print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns: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. <LinearLayoutandroid: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. </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 plain copy print ?
  1. publicclassAndroid_UI_17_Fragmentv4ActivityextendsFragmentActivity{
  2. /**Calledwhentheactivityisfirstcreated.*/
  3. @Override
  4. publicvoidonCreate(BundlesavedInstanceState){
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.main);
  7. FragmentManagerfragmentManager=getSupportFragmentManager();
  8. FragmentTransactionfragmentTransaction=fragmentManager.beginTransaction();
  9. DemoLeftFragmentleftFragment=newDemoLeftFragment();
  10. fragmentTransaction.add(R.id.leftView,leftFragment);
  11. fragmentTransaction.commit();
  12. }
  13. }


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

DemoRightFramgment.java如下:

[java] view plain copy print ?
  1. publicclassDemoRightFramgmentextendsFragment{
  2. @Override
  3. publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,
  4. BundlesavedInstanceState){
  5. returninflater.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
*/

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. ubuntu环境下反编译android apk
  6. android通过自定义toast实现悬浮通知效果的示例代码
  7. Fragment Management
  8. Error:The module 'app' is an Android(安卓)project without bu
  9. Android(安卓)ART机制分析

随机推荐

  1. Android系统中的.apk文件和dex文件
  2. Android之解析XML
  3. Android四种菜单的使用
  4. Android之ViewModel
  5. Android- 活动(Activity), 服务(Service)
  6. android中SharedPreferences实现存储用户
  7. Android学习 之 ColorStateList按钮文字
  8. Android(安卓)UI设计——Spinner控件
  9. Android(安卓)SDK、NDK、JNI的简单介绍
  10. Android多语言支持