android中碎片 -手机平板兼顾

碎片是一种可以嵌入在活动当中的UI片段,他能让程序更加合理和充分地利用大屏幕空间,因而在平板上应用的很广泛。 动态的添加碎片主要分为五步: 1.创建待添加的碎片实例 2.获取FragmentManager,在活动中可以直接通过调用getSupportFragmentMessager()方法得到。 3.开启一个事务,通过调用beginTransaction()方法开启 4.向容器内添加或替换碎片,一般使用replace()方法实现,需要传入容器的id和待添加的碎片实例。 5.提交事务,调用commit()方法完成。 addToBackStack() 方法,可以接收一个名字用于描述返回栈的状态,一般传入null即可。 为了方便碎片和活动之间进行通信,FragmentManager提供了一个类似与findViewById()方法,专门从布局文件中获取碎片的实例,代码如下: RightFragment rightFragment=(RightFragment) getSupportFragmentManager().findFragmentById(R.id.right_fragment); 调用FragmentManager的findFragemntById()方法,可以在活动中得到响应碎片实例,可以轻松调用碎片里的方法了。 每个碎片中都可以通过调用getActivity()方法得到和当前碎片相关连的活动实例 MainActivity activity=(MainActivity) getActivity(); 若当碎片中需要使用Context对象时,也可以使用getActivity()方法,因为获取到的活动本省就是一个Context对象。 碎片与碎片之间的通信 首先在一个碎片中可以得到与相关联的活动,然后再通过再这个活动去获取另一个碎片的实例,即可实现不同碎片之间的通信。 碎片的生命周期 状态: 1.运行状态:当一个碎片是可见的,并且它所关联的活动正处于允许状态时,碎片也处于运行状态。 2.暂停状态:当一个活动进入暂停状态时(由于另一个未沾满屏幕的活动被添加到栈顶),与他相关联的可见碎片就会进入到暂停状态。 3.停止状态:当一个活动进入停止状态时,与他下个关联的碎片就会进入到停止状态或者通过调用FragmentTransaction的remove(),replace()方法将碎片从活动中移除,但如果再事务提交之前调用addToBackStack()方法,这时的碎片也会进入到停止状态。总的来说,进入停止状态的碎片对用户来说是完全不可见的,有可能会被系统回收。 4.销毁状态:碎片是依附于活动而存在的,因此当活动被销毁时,与他先关联的碎片就进入到了销毁状态,或者通过调用FragmentTransaction的remove(),replace()方法将碎片从活动中移除,但在事务提交之前并没有调用addToBackStack()方法,这时的碎片也进入到了销毁状态。 回调: onAttach()当碎片和活动建立关联的时候调用 onCreateView()当碎片创建视图时调用。 onActivityCreated()确保于碎片相关联的活动一定已经创建完毕的时候调用。 onDestroyView()当与碎片关联的视图被移除的时候调用。 onDetach()当碎片和活动解除关联的时候调用。 Android中一些常见的限定符: 1.大小 small:提供给小屏幕设备的资源 normal:提供给中等设备屏幕的资源 large:提供给大屏幕设备的资源 xlarge:提供给超大屏幕设备的资源 2.分辨率 ldpi提供给低分辨率设备的资源(120dpi以下) mdpi提供给中等分辨率设备的资源(120dpi---160dpi) hdpi提供给高分辨率设备的资源(160--240) xhdpi提供给超高设备的资源(240--320) xxhdpi提供给超超高设备的资源(320--480) 3.方向 land提供给横屏设备的资源 port提供给竖屏设备的资源

猜你喜欢

转载自www.cnblogs.com/hy-nobug/p/12168735.html
今日推荐