fragmentUI

fragmentUI,第1张

1、FragmentManager管理fragment队列

1):fragment队列

2):fragment事务回退栈

2、getSupportFragmentManager()

使用了支持库和AppCompatActivity类,所以调用这个方法。如果不考虑旧版本的兼容问题,可以再Activity里面调用getFragmentManager()。

3、fragment事务,fragment transaction()

fragment事务被用来添加、移除、附加、分离或者替换fragment队列中的fragment,FragmentManager管理者fragment事务回退栈。fragmentManager.beginTransaction()方法创建并且返回FragmentTransaction实例,FragmentTransaction类支持流街口(fluent interface)的链式方法调用。如:FragmentManager  fm  = getSupportFragmentManager()fm.beginTransaction().add(int a,fragment).commit()两个参数表示容器视图资源ID和新创建的CrimeFragment,容器资源ID的作用是:

1)、告诉FragmentManager,fragment视图应该出现在activity视图的什么位置

2)、唯一标识FragmentManaer队列中的fragment.

4、fragment中需要注意的地方

FragmentManager使用FrameLayout组件的资源ID识别CrimeFragment,使用容器视图资源ID识别UI fragment就是FragmentManager的一种内部实现机制。如果向activity添加多个fragment,通常需要分别为每个fragment创建具有不同ID的不同容器。首先,find得时候,可能获取的fragment在队列中,那就直接返回。(为什么说可能,设备旋转或者回收内存时,activity被销毁时,FragmentManager会将fragment队列保存下来,重建的时候FragmentManager获取保存的队列,重建fragment队列,恢复到原来的状态)当然没有的时候,新建一个fragment,启动一个fragment事务,然后将新建的fragment添加FragmentManager的队列当中。

When designing your application to support a wide range of screen sizes, you can reuse your fragments in different layout configurations to optimize the user experience based on the available screen space.

当为了支持更大范围的屏幕大小而设计你的应用时,你可以在不同的布局配置里重用你的框架,通过可用的屏幕空间来优化用户体验。

For example, on a handset device it might be appropriate to display just one fragment at a time for a single-pane user interface. Conversely, you may want to set fragments side-by-side on a tablet which has a wider screen size to display more information to the user.

例如,在一个手机里,一个时刻在单一窗格的用户界面上只显示一个框架可能是合适的。相反的,你可能想要在平板这样更大的屏幕上将框架一个挨一个放置来为用户显示更多的信息。

Figure 1. Two fragments, displayed in different configurations for the same activity on different screen sizes. On a large screen, both fragment fit side by side, but on a handset device, only one fragment fits at a time so the fragments must replace each other as the user navigates.

图1. 同一个activity在不同屏幕大小上使用不同的配置显示两个框架。在大屏幕上,两个框架紧挨着放置,但是在手机设备上,同一时间只有一个框架,因此在用户点击导航时框架必须互相替换。

The FragmentManager class provides methods that allow you to add, remove, and replace fragments to an activity at runtime in order to create a dynamic experience.

FragmentManager类提供了一些方法,它们允许你动态地向一个activity添加、移除和替换框架,已达到一个动态的用户体验。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11415814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存