在上一篇中简单介绍了Fragment,现在来一个简单的用法
用法
Fragment需要与FrameLayout结合使用,FrameLayout起到了容器的作用。
首先我们要在布局中使用FrameLayout,设置相应宽高等属性,它就是我们要添加内容的容器,如下面的代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
其中FrameLayout就是填充Fragment的容器,当要往容器中添加我们需要的Fragment时,需要几个步骤:
1、获取FramgmentTransaction, Fragment的事务管理类
FragmentTransaction transaction = fm.beginTransaction();
2、通过FragmentTransaction进行添加,删除,替换等操作
3、操作结束,提交事务,如果不提交,操作无效。 transaction.commit();
transaction.commitAllowingStateLoss();
稍后再说明这两种提交事务的方法的不同。
现在是一个简单的例子代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
上面的代码非常简单,自定义三个Fragment,默认添加第一个Fragment,然后通过单选框的选择变化来添加不同的fragment。
特别注意
FragmentManager推荐使用support包中类,可以来兼容比较低的版本,遇到报错的少年,先看看使用的类是否有有问题。
另外fragmen还有另外一种使用方法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
从上面的布局可以看出来,是直接在布局写死了fragment,就好像用积木拼出了一个完整的布局,但是每一块都是固定不能变化的,这种用法在手机开发中并不经常使用,毕竟手机屏幕大小的限制,这种应用场景并不常见,但是平板开发的少年应该对这种用法非常的了解,把不同功能封装成模块进行开发,使用的时候直接拼装,省时省力。
下一篇我们来具体说明一下Fragment的添加和替换的不同。