• Fragment 在Android SDK1.6上实现


          《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 再选择文件即可。

    看一下布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:orientation="horizontal" android:layout_width="fill_parent"
    	android:layout_height="fill_parent" android:id="@+id/rootView">
    	<LinearLayout android:id="@+id/leftView"
    		android:orientation="vertical" android:layout_width="0dp"
    		android:layout_weight="1" android:layout_height="fill_parent" 
    		android:background="#c0c0c0c0"/>
    	<fragment
    		class="com.nedu.android_ui_17_fragmentv4.DemoRightFramgment"
    		android:id="@+id/rightView" android:layout_weight="2"
    		android:layout_width="0px" android:layout_height="match_parent" 
    		/>
    
    </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如下:

    public class Android_UI_17_Fragmentv4Activity extends FragmentActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
        	FragmentManager fragmentManager=getSupportFragmentManager();
    		FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();		
    		DemoLeftFragment leftFragment=new DemoLeftFragment();		
    		fragmentTransaction.add(R.id.leftView, leftFragment);
    
    		fragmentTransaction.commit();
        }
    }


     

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

     DemoRightFramgment.java如下:

      

    public class DemoRightFramgment extends Fragment {
    	@Override
    	public View onCreateView(LayoutInflater inflater, ViewGroup container,
    			Bundle savedInstanceState) {
    		return inflater.inflate(R.layout.right_fragment, container,false);
    	}
    }

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

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

    /**
    * @author 张兴业
    * 邮箱:xy-zhang#163.com
    * android开发进阶群:278401545
    *
    */

  • 相关阅读:
    java面试记录
    Ubuntu下的Nginx配置
    docker删除镜像
    Web钱包私钥导出新旧两种地址格式(加班到深夜修改的一个功能点)
    报销时,财务提供的小技巧积累
    day 02 学前准备
    day 04 URL组成部分
    day 01 虚拟环境的创建
    day 05 第二章:URL与视图
    day 03 Django 介绍
  • 原文地址:https://www.cnblogs.com/xyzlmn/p/3168161.html
Copyright © 2020-2023  润新知