您的位置:首页 > 移动开发 > Android开发

Fragment 基础详解

2016-04-16 12:16 741 查看
在Android3.0时入了Fragment概念,主要目的是用在大屏幕
设备上--例如平板电脑上,支持更加动态和灵活的UI设计。
平板电脑的屏幕要比手机大得多,有更多的空间来放更多的
UI组件,并且这些组件之间可以产生更多的交互。

Fragment在你的应用中应当是一个模块化和可重用的组件,
因为Fragment定义了它自己的布局,以及通过使用它自己的
生命周期回调方法定义了它自己的行为,你可以将Fragment
包含到多个Activity中。

Fragment可以作为Activity界面的一部分组成出现
可以再一个Activity中同时出现多个Fragment,并且一个
          Fragment也可以在多个Activity中使用
    3. 在Activity运行过程中,可以添加、移除和替换Fragment
    4. Fragment你可以相应自己的输入事件,并且有自己的生命
         周期,他们的生命周期受宿主Activity的生命周期影响
-----------------------------------------------------------------------------------
静态加载方法:
首先创建mainActivity2 和 myFragment 这两个类,并且让mainActivity2 
继承Activity实现OnCreate方法,让myFragment 继承Fragment并且
实现OnCreateView方法,再分别添加main2.xml文件和Fragment.xml
布局文件。其中main2.xml文件如下
-------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

   

 <fragment
     //必须要写Fragment的属性id 和name 

     android:id="@+id/fragment1"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"
     //绑定java类

     android:name="com.example.fragmenttest.MyFragment"

     />

</LinearLayout>

   ---------------------------------------------------------------------------------------
很明显在main2中包含了一个Fragment,这个Fragment可以在
myFragment 中实现布局。
myFragment部分代码:
------------------------------------------------------------------------------------------
public class MyFragment extends Fragment{

 

 @Override

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

  // TODO Auto-generated method stub

  

  //layout文件转换成View对象

  /**

   *      resource:Fragment需要加载的布局文件*

   *      root:加载layout的父ViewGroup*   

   *     attactToRoot:fakse,不返回父ViewGroup

  */

  View view= inflater.inflate(R.layout.fragment, container,false);

  TextView tv = (TextView) view.findViewById(R.id.textView1);

  tv.setText("通过静态加载Fragment");

  return view;

 }

}
*-------------------------------------------------------------------------------------
现在已经基本实现了,只要在mainActivity的按钮监听器进行判断,
并且用Intent去转换,即可实现
注意不要忘记在Mainifest.xml文件中声明mainactivity2

动态加载
---------------------------------------------------------------------------------------.

    //自定义的类,继承Fragment
   MyFragment2 fragment= new MyFragment2();
     //创建Fragment管理者

   FragmentManager fm= getFragmentManager();
     //获取管理者的beginTransaction对象

   android.app.FragmentTransaction bts = fm.beginTransaction();
     //通过add方法添加

   bts.add(R.id.Layout1,fragment);

   bts.commit();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android