哎呀,周末又浪去了!无心学习啊!
今天继续看,文档看到Fragment了,啊哈。
Fragment:
添加无界面的Fragment android可以将Fragment添加到activity中为其提供一个用户界面,也可以使用Fragment为activity提供后台动作,却不呈现多余的用户界面。
有界面添加:可以通过XML进行声明你所创建的Fragment
也可以在代码中进行添加
FragmentManager manager = getFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.add(R.id.container,MyFragment) //第一个参数是Fragment所在的容器ViewGroup,它由资源id(Resource id)第二个是要添加的Fragment。
无界面添加:同样通过add(Fragment ,String )方法添加,只不过为Fragment提供的是一个唯一字符串“tag”而不是“id”,对于无界面的Fragment,字符串便签是它唯一识别的方法,如果在activity中需要获取该fragment的话,可以通过 findFragmentByTag()
为fragment提供id的三种方法:
1,android:id 提供一个唯一标识
2,android:tag 提供一个唯一字符串
3,如果上述属性都没有,系统会使用其容器(view)id
管理Fragment:
通过FragmentManager进行activity中的fragment的管理,使用getFragmentManager()获取。
使用FragmentManager可以做以下事情
1,使用findFragmentById()(用于actiiyt中获取有界面的fragment)或findFragmentByTag(用于activity总获取有或没有界面的fragment)
2,使用popBackStack()(模仿用户的Back命令)从后台栈弹出fragment (什么鬼,怎么没印象。好吧,忘得很干净)
3,使用addOnBackStackChangedListener() 注册一个监听后台栈变化的监听器 (和上面那个一起的?- - )
处理Fragement事务:
在activity中使用Fragment一大特点是具有对fragment 添加,删除,替换和执行其他动作的功能,以响应用户的互动。
通过调用manage.beginTransaction();//开启事务,得到事务的实例。
还可以调用addToBackStack()将事务添加到fragment的事务后台栈中,允许用户通过按Back键回退到前一个fragment状态。
在执行删除fragment事务时,如果没有调用addToBackStack(),事务一提交fragment就会被销毁,而且用户无法回退它,如果调用了,那么fragment停止,但是当点击Back键,它将被恢复。
提示:对于每一个fragment事务,在提交之前通过se'tTransation()来应用一系列事务动作。
注意:必须在最后调用commit()
警告:必须在activity保存状态(用户离开activity时)之前调用commit()提交事务。如果尝试在之后调用,会抛出一个异常。这是因为如果activity需要被恢复,commit()提交后的状态会被丢失。对于这类事务丢失的情况可以使用commitAllowingStateLose();
哎呀!差不多了,虽然还有些东西,但觉得不太好自己写上来呢,太多了。复制,粘贴多不好。好吧!!看完我复制粘贴下来了。只是还需要慢慢琢磨