FragMent的静态加载和动态加载

1884人阅读 评论(0) 收藏 举报
分类:
 <fragment
        android:name="com.example.myfragment.MyFragment"
        android:id="@+id/myfragment_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         />


以上就是静态加载所用的布局,android:name属性中是MyFragment.java的全名,android:id中是Fragment的唯一标识(这个必须得加,否则报错,也可用android:tag属性来作唯一标识)。

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //做一个简单的UI操作,证明静态加载时我们可以直接获取到
        //Fragment中的UI控件
        TextView tv = (TextView) findViewById(R.id.textView);
        tv.setText("床前明月光");
    }
}
证明是可以直接获取id的


实现动态加载,我们需要先了解Fragment事务。熟悉数据库的同学都知道,事务指的就是一种原子性、不可拆分的操作。所谓的Fragment事务就是:对Fragment进行添加、移除、替换或执行其它动作,提交给Activity的每一个变化。这就是Fragment事务。

Fragment是UI模块,自然在一个Activity中可以不只有一个模块,所以Android提供了FragmentManage类来管理Fragment,FragmentTransaction类来管理事务。我们对Fragment的动态加载就是先将添加、移除等操作提交到事务,然后通过FragmentManage完成的。

通过FragmentManager.beginTransaction()我们可以开始一个事务。在事务中,我们可以对Fragment进行的操作以及对应的方法如下:
添加:add()
移除:remove()
替换:replace()
提交事务:commit()
上面几个是比较常用的,还有attach()、detach()、hide()、addToBackStack()等方法。
我们需要注意的是,Fragment以ID或Tag作为唯一标识,所以remove和replace的参数是Fragment,这个Fragment目标Fragment一致。在下面的示例里,我使用了一个栈记录所有添加的Fragment,然后在移除时使用。


       // 开启一个新事务
   transaction = manager.beginTransaction();
   // 使用add方法添加Fragment,第一个参数是要把Fragment添加到的布局Id
   // 第二个就是要添加的Fragment
      transaction.add(R.id.fragments, fragment);
      // 提交事务,否则添加就没成功
      transaction.commit();

查看评论

静态加载Fragment出错原因

因为需要测试有关Fragment的一些东西,静态加载Fragment一直不成功,如下所示 xml version="1.0" encoding="utf-8"?> xmlns:android="ht...
  • u010368726
  • u010368726
  • 2016年03月01日 17:08
  • 1529

Android中的Fragment——01(Fragment的静态加载)

Fragment的知识概要 1,Fragment可以作为Activity的界面的一部分组成出现 2,可以在一个Activity中同时出现多个Fragment,并且一个Fragment可以在多个Acti...
  • WOW875620051
  • WOW875620051
  • 2016年07月07日 01:25
  • 907

Android-动态加载和静态加载Fragment

Android-动态加载和静态加载Fragment以及通信Fragment使用非常方便,和Activity功能一样,不过比Activity简捷,在安卓App中很常见。 比如上图,下面四个按钮,每...
  • ACM_TH
  • ACM_TH
  • 2016年03月31日 11:54
  • 4288

Android笔记 fragment入门 静态加载fragment

fragment最初目的:为了方便平板开发界面的美化 fragment引入原因 一般市面上的软件Activity太过庞杂 每一个Activity都要在清单文件配置 清单文件也比较臃肿查找修改不便 因此...
  • u011109881
  • u011109881
  • 2014年10月22日 16:54
  • 594

fragment的静态与动态加载

静态加载(直接在布局文件中添加fragment标签,指定name属性):
  • qq_31430261
  • qq_31430261
  • 2016年04月07日 14:45
  • 374

android Fragment静态加载使用详解

Fragment是activity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面并且你可以在多个activity中重用一个Fragment。你...
  • AirMario
  • AirMario
  • 2016年12月19日 21:55
  • 657

android的fragment使用中static静态fragment实例遇到的坑

android的fragment使用中static静态fragment实例遇到的坑 场景描述: FragmentActivity + viewpager + fragment 问题描述: Fr...
  • lisu860619
  • lisu860619
  • 2016年05月25日 13:14
  • 1273

Android之Fragment静态实现实例

Fragment是作为Activity的UI的一部分,它内嵌在Activity中,多个Fragment可以把一个Activity分成多个部分,这在大屏幕手机或者平板电脑中会比较多的用到,这样就不用使用...
  • caihanyuan
  • caihanyuan
  • 2012年03月19日 09:25
  • 28771

Android Fragment 动态、静态切换

Fragment是一个使界面充分利用的控件,它和Activity关联,减少了Activity的使用。Frangment的切换分为静态和动态...
  • u012925323
  • u012925323
  • 2016年01月04日 11:20
  • 1486

android Fragment动态加载的使用详解

在上一节中讲了静态加载,使用静态加载的场景非常局限,因此这里详细讲解动态加载Fragment,这也是开发中常用的使用场景。Fragment是activity的界面中的一部分或一种行为。你可以把多个Fr...
  • AirMario
  • AirMario
  • 2016年12月19日 22:09
  • 1962
    个人资料
    等级:
    访问量: 3万+
    积分: 472
    排名: 10万+
    文章分类
    文章存档
    最新评论