Fragment-8.11
2015-08-11 09:32
211 查看
1、fragment 主要用来切换页面和管理view。
• 对于管理fragment,需要在activity中用getFragmentManager()取得它的实例。
•可以通过FragmentManager做一些事情, 包括: 使用findFragmentById()(用于在activity layout中提供一个UI的fragment)或findFragmentByTag()(适用于有或没有UI的fragment)获取activity中存在的fragment。
•将fragment从后台堆栈中弹出, 使用 popBackStack() (模拟用户按下BACK 命令)。
•使用addOnBackStackChangeListener()注册一个监听后台堆栈变化的listener。
2、fragment事物。
提交给activity的每一套变化被称为一个事务,可以使用在FragmentTransaction中的
API 处理。我们也可以保存每一个事务到一个activity管理的backstack,允许用户经由fragment的变化往回导航(类似于通过 activity往后导航)。
每一个事务都是同时要执行的一套变化。可以在一个给定的事务中设置你想执行的所有变化,使用诸如
add()、remove()和 replace()。然后, 要给activity应用事务,必须调用 commit()。
在调用commit()之前,你可能想调用
addToBackStack(),将事务添加到一个fragment事务的backstack。这个back stack由activity管理, 并允许用户通过按下 BACK按键返回到前一个fragment状态。
如果添加多个fragment到同一个容器,
那么添加的顺序决定了它们在view hierarchy中显示的顺序
当执行一个移除fragment的事务时, 如果没有调用 addToBackStack(), 那么当事务提交后,那个fragment会被销毁,并且用户不能导航回到它。有鉴于此,当移除一个fragment时,如果调用了addToBackStack(), 那么fragment会被停止,如果用户导航回来,它将会被恢复。另外,对于每一个fragment事务,你可以应用一个事务动画,通过在提交事务之前调用setTransition()实现。
调用 commit() 并不立即执行事务。恰恰相反,它将事务安排排期, 一旦准备好,就在activity的UI线程上运行(主线程)。如果有必要, 无论如何,你可以从你的UI线程调用executePendingTransactions()来立即执行由commit()提交的事务。但这么做通常不必要,除非事务是其他线程中的任务的一个从属。
警告:你只能在activity保存它的状态(当用户离开activity)之前使用commit()提交事务.
对于在fragment中添加ListView ,我用到的方法是:在相应fragment.java文件中先声明一个适配器,一步步记录太麻烦直接贴图:
当然还有xml文件:这是more.java的xml文件
下面是list_item.xml
这样的效果就是当切换到more这一页的时候显示的是一些列表(有图片,有标题,有内容)。
我就是想记录一下…………咋图片发不上来尼!
• 对于管理fragment,需要在activity中用getFragmentManager()取得它的实例。
•可以通过FragmentManager做一些事情, 包括: 使用findFragmentById()(用于在activity layout中提供一个UI的fragment)或findFragmentByTag()(适用于有或没有UI的fragment)获取activity中存在的fragment。
•将fragment从后台堆栈中弹出, 使用 popBackStack() (模拟用户按下BACK 命令)。
•使用addOnBackStackChangeListener()注册一个监听后台堆栈变化的listener。
2、fragment事物。
提交给activity的每一套变化被称为一个事务,可以使用在FragmentTransaction中的
API 处理。我们也可以保存每一个事务到一个activity管理的backstack,允许用户经由fragment的变化往回导航(类似于通过 activity往后导航)。
每一个事务都是同时要执行的一套变化。可以在一个给定的事务中设置你想执行的所有变化,使用诸如
add()、remove()和 replace()。然后, 要给activity应用事务,必须调用 commit()。
在调用commit()之前,你可能想调用
addToBackStack(),将事务添加到一个fragment事务的backstack。这个back stack由activity管理, 并允许用户通过按下 BACK按键返回到前一个fragment状态。
如果添加多个fragment到同一个容器,
那么添加的顺序决定了它们在view hierarchy中显示的顺序
当执行一个移除fragment的事务时, 如果没有调用 addToBackStack(), 那么当事务提交后,那个fragment会被销毁,并且用户不能导航回到它。有鉴于此,当移除一个fragment时,如果调用了addToBackStack(), 那么fragment会被停止,如果用户导航回来,它将会被恢复。另外,对于每一个fragment事务,你可以应用一个事务动画,通过在提交事务之前调用setTransition()实现。
调用 commit() 并不立即执行事务。恰恰相反,它将事务安排排期, 一旦准备好,就在activity的UI线程上运行(主线程)。如果有必要, 无论如何,你可以从你的UI线程调用executePendingTransactions()来立即执行由commit()提交的事务。但这么做通常不必要,除非事务是其他线程中的任务的一个从属。
警告:你只能在activity保存它的状态(当用户离开activity)之前使用commit()提交事务.
对于在fragment中添加ListView ,我用到的方法是:在相应fragment.java文件中先声明一个适配器,一步步记录太麻烦直接贴图:
当然还有xml文件:这是more.java的xml文件
下面是list_item.xml
这样的效果就是当切换到more这一页的时候显示的是一些列表(有图片,有标题,有内容)。
我就是想记录一下…………咋图片发不上来尼!
相关文章推荐
- Web项目发布
- 17-集合框架-13-常用对象API(集合框架-LinkedList集合)
- 安装配置Apache2 Perl cgi-bin
- Universal-Image-Loader(android图片缓存)
- Hadoop和大数据:60款顶级开源工具
- Go-goroutine 不可滥用
- POJ 1260:Pearls 珍珠DP
- DEBUG org.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers
- 16-集合框架-09-常用对象API(集合框架-ListIterator接口)
- poj 2406 Power Strings
- linux basic commands
- 语句
- POJ 1260:Pearls 珍珠DP
- RHEV平台中如何为 WINDOWS 虚拟机配置单点登录
- http请求 Icy-MetaData头
- 黑马程序员——ios学习笔记 OC 内存管理
- jquery.fastLiveFilter.js实现输入自动过滤的方法
- 16-集合框架-08-常用对象API(集合框架-List集合的常见方法)
- 使用 Xcode 工具(Network Link Conditioner)模拟网络状态
- js基础