AndroidFragment使用详解_第1页
AndroidFragment使用详解_第2页
AndroidFragment使用详解_第3页
AndroidFragment使用详解_第4页
AndroidFragment使用详解_第5页
免费预览已结束,剩余31页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Fragment(一)i.继承关系java.lang.Object|_android.app.Fragment实现接口:ComponentCallbacks2View.OnCreateContextMenuListener引入版本:APILevel11已知的子类:DialogFragment、ListFragment、PreferenceFragment、WebViewFragment2.类概要一个Fragment是应用程序的用户界面或行为的一个片段,它能够被放置在一个Activity中。通过FragmentManager对象来实现与Fragment对象的交互,能够通过Activity.get

2、FragmentManager()方法和Fragment.getFragmentManager()方法来获取FragmentManager对象。Fragment类有着广泛的应用,它的核心是代表了一个正在较大的Activity中运行的特俗的操作或界面。Fragment对象跟它所依附的Activity对象是紧密相关的,并且不能被分开使用。尽管Fragment对象定义了它们自己的生命周期,但是这个生命周期要依赖与它所在白AActivity:如果该Activity被终止,那么它内部的Fragment是不能被启动的;当Activity被销毁时,它内部的所有Fragment对象都会被销毁。所有的Fragm

3、ent子类都必须包含一个公共的空的构造器。在需要的时候,Framework会经常重新实例化Fragment类,在特殊的状态恢复期间,需要能够找到这个构造器来实例化Fragment类。如果空的构造器无效,那么在状态恢复期间会导致运行时异常发生。较旧的平台尽管FragmentAPI是在HONEYCOMBS中被弓I入的,但是通过FragmentActivity也能够在较旧的平台上使用该API。声明周期尽管Fragment对象的生命周期要依附于它所在的Activity对象,但是它也有自己标准的活动周期,它包含了基本的活动周期方法,如onResume(),但是同时也包含了与Activity和UI交互相关

4、的重要方法。显示Fragment时(跟用户交互)要调用的核心的生命周期方法如下:1. 把Fragment对象跟Activity关联时,调用onAttach(Activity)方法;2. Fragment对象的初始创建时,调用onCreate(Bundle)方法;3. onCreateView(LayoutInflater,ViewGroup,Bundle)方法用于创建和返回跟Fragment关联的View对象;4. onActivityCreate(Bundle)方法会告诉Fragment对象,它所依附的Activity对象已经完成了Activity.onCreate()方法的执行;5. on

5、Start()方法会让Fragment对象显示给用户(在包含该Fragment对象的Activity被启动后);6. onResume()会让Fragment对象跟用户交互(在包含该Fragment对象的Activity被启恢复后)。Fragment对象不再使用时,要反向回调的方法:1 .因为Fragment对象所依附的Activity对象被挂起,或者在Activity中正在执行一个修改Fragment对象的操作,而导致Fragment对象不再跟用户交互时,系统会调用Fragment对象的onPause()方法;2 .因为Fragment对象所依附的Activity对象被终止,或者再Activ

6、ity中正在执行一个修改Fragment对象的操作,而导致Fragment对象不再显示给用户时,系统会调用Fragment对象的onStop()方法。3 .onDestroyView()方法用于清除跟Fragment中的View对象关联的资源;4 .Fragment对象的状态被最终清理完成之后,要调用onDestroy()方法;5 .在Fragment对象不再跟它依附的Activity关联的时候,onDetach()方法会立即被调用。布局Fragment对象能够被用于应用程序的布局,它会让代码的模块化更好,并且针对Fragment所运行的屏幕,让用户界面的调整更加容易。例如,一个简单的由项目列

7、表和项目明细表示所组成的程序。一个Activity的布局XML能够包含要嵌入到布局内部的Fragment实例的fragment标签。例如,下例中在布局中嵌入了一个Fragment对象:<FrameLayoutxmlns:android="android:layout_width="match_parent"android:layout_height="match_parent"><fragmentclass="com.example.android.apis.app.FragmentLayout$TitlesFrag

8、ment"android:id="+id/titles"android:layout_width="match_parent"android:layout_height="match_parent"/></FrameLayout>以下是布局被安装到Activity中的通常方法:OverrideprotectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.fra

9、gment_layout);依赖ListFragment对象,要显示列表的标题是相当简单的。要注意的是,点击一个列表项的实现,会依赖当前Activity的布局,它既可以创建一个新的Fragment用于显示该项目的明细,也可以启动一个新的Activity用于显示项目的明细。publicstaticclassTitlesFragmentextendsListFragmentbooleanmDualPane;intmCurCheckPosition=0;OverridepublicvoidonActivityCreated(BundlesavedInstanceState)super.onActiv

10、ityCreated(savedInstanceState);/Populatelistwithourstaticarrayoftitles.setListAdapter(newArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_activated_1,Shakespeare.TITLES);/Checktoseeifwehaveaframeinwhichtoembedthedetails/fragmentdirectlyinthecontainingUI.ViewdetailsFrame=get

11、Activity().findViewById(R.id.details);mDualPane=detailsFrame!=null&&detailsFrame.getVisibility()View.VISIBLE;if(savedInstanceState!=null)/Restorelaststateforcheckedposition.mCurCheckPosition=savedInstanceState.getInt("curChoice",0);if(mDualPane)/Indual-panemode,thelistviewhighlight

12、stheselecteditem.getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);/MakesureourUIisinthecorrectstate.showDetails(mCurCheckPosition);OverridepublicvoidonSaveInstanceState(BundleoutState)super.onSaveInstanceState(outState);outState.putInt("curChoice",mCurCheckPosition);Overridepublicv

13、oidonListItemClick(ListViewl,Viewv,intposition,longid)showDetails(position);/* Helperfunctiontoshowthedetailsofaselecteditem,eitherby* displayingafragmentin-placeinthecurrentUI,orstartinga* wholenewactivityinwhichitisdisplayed.*/voidshowDetails(intindex)mCurCheckPosition=index;if(mDualPane)/Wecandis

14、playeverythingin-placewithfragments,soupdate/thelisttohighlighttheselecteditemandshowthedata.getListView().setItemChecked(index,true);/Checkwhatfragmentiscurrentlyshown,replaceifneeded.DetailsFragmentdetails=(DetailsFragment)getFragmentManager().findFragmentById(R.id.details);if(details=null|details

15、.getShownIndex()!=index)/Makenewfragmenttoshowthisselection.details=DetailsFragment.newInstance(index);/Executeatransaction,replacinganyexistingfragment/withthisoneinsidetheframe.FragmentTransactionftgetFragmentManager().beginTransaction();ft.replace(R.id.details,details);ft.setTransition(FragmentTr

16、ansaction.TRANSIT_FRAGMENT_FADE);mit();else/Otherwiseweneedtolaunchanewactivitytodisplay/thedialogfragmentwithselectedtext.Intentintent=newIntent();intent.setClass(getActivity(),DetailsActivity.class);intent.putExtra("index",index);startActivity(intent);明细Fragment对象只会显示所选项目的详细文本字符串,它是基于内置在

17、应用中的一个字符数组的索引来获取的:publicstaticclassDetailsFragmentextendsFragment/* CreateanewinstanceofDetailsFragment,initializedto* showthetextat'index'.*/publicstaticDetailsFragmentnewInstance(intindex)DetailsFragmentf=newDetailsFragment();/Supplyindexinputasanargument.Bundleargs=newBundle();args.putInt

18、("index",index);f.setArguments(args);returnf;publicintgetShownIndex()returngetArguments().getInt("index",0);OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState)if(container=null)/Wehavedifferentlayouts,andinoneofthemthis/fragment'

19、scontainingframedoesn'texist.Thefragment/maystillbecreatedfromitssavedstate,butthereis/noreasontotrytocreateitsviewhierarchybecauseit/won'tbedisplayed.Notethisisnotneeded-wecould/justrunthecodebelow,wherewewouldcreateandreturn/theviewhierarchy;itwouldjustneverbeused.returnnull;ScrollViewscro

20、ller=newScrollView(getActivity();TextViewtext=newTextView(getActivity();intpadding(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,4,getActivity().getResources().getDisplayMetrics();text.setPadding(padding,padding,padding,padding);scroller.addView(text);text.setText(Shakespeare.DIALOGUEget

21、ShownIndex();returnscroller;在用户点击标题的情况下,在当前的Activity中没有明细容器,因此标题Fragment的点击事件代码会启动一个新的显示明细Fragment的Activity:publicstaticclassDetailsActivityextendsActivityOverrideprotectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);if(getResources().getConfiguration().orientation=Config

22、uration.ORIENTATION_LANDSCAPE)/Ifthescreenisnowinlandscapemode,wecanshowthe/dialogin-linewiththelistsowedon'tneedthisactivity.finish();return;if(savedInstanceState=null)/Duringinitialsetup,pluginthedetailsfragment.DetailsFragmentdetails=newDetailsFragment();details.setArguments(getIntent().getEx

23、tras();getFragmentManager().beginTransaction().add(android.R.id.content,details).commit();但是,屏幕可能足够显示标题列表和当前所选标题相关的明细。对于在横向屏幕上这样的布局,可以被放置在layout-land下面:<LinearLayoutxmlns:android="android:orientation="horizontal"android:layout_width="match_parent"android:layout_height=&qu

24、ot;match_parent"><fragmentclass="com.example.android.apis.app.FragmentLayout$TitlesFragment"android:id="+id/titles"android:layout_weight="1"android:layout_width="0px"android:layout_height="match_parent"/><FrameLayoutandroid:id="

25、+id/details"android:layout_weight="1"android:layout_width="0px"android:layout_height="match_parent"android:background="?android:attr/detailsElementBackground"/></LinearLayout>要注意的是,以上代码是如何调整这种可选的UI流的:标题Fragment对象被嵌入到该Activity内部的明细Fragment对象中,并且如果

26、Fragment对象运行在一个有显示明细空间的配置环境中,那么明细Activity会由它自己来完成。当由于配置的改变而导致Activity所持有的这些Fragment对象重启的时候,它们新的Fragment实例可以使用与之前所使用的布局不同的布局。在这种情况中,之前所有的Fragment对象依然会被实例化,并运行在新白实例中。但是任何不在跟<fragment>关联的View对象将不会再被创建,并且重isInLayout()方法中返回false。在把Fragment的View对象绑定到父容器的时候,<fragment>标签的属性被用于控制提供给LayoutParams对象

27、的信息,它们能够作为Fragment对象中的onInflate(Activity,AttributeSet,Bundle)方法的参数来解析。正在实例化的Fragment对象必须要有某些类型唯一标识,以便在它的父Activity在销毁并重建的时候,能够被重新关联到之前的实例。可以使用以下方法来实现这种关联:1 .如果没有明确的指定,则使用容器的ViewID来标识;2 .使用<fragment>元素的android:tag属性,给Fragment对象元素提供一个特定的标签名称;3 .使用<fragment>元素的android:id属性,给Fragment对象的元素提供一个

28、特定的标识。Android类参考-Fragment(二)回退堆栈在Fragment中被编辑的事务能够放在它自己的Activity中回退堆栈内。当用户在该Activity中按下返回按钮时,在回退堆栈中的任何事务在Activity自己被结束之前会被弹出堆栈。例如,实例化一个带有整数参数的简单的Fragment对象,并且把这个整数显示在它的UI的一个TextView中:publicstaticclassCountingFragmentextendsFragmentintmNum;/* CreateanewinstanceofCountingFragment,providing"num&qu

29、ot;* asanargument.* /staticCountingFragmentnewInstance(intnum)CountingFragmentf=newCountingFragment();/Supplynuminputasanargument.Bundleargs=newBundle();args.putInt("num",num);f.setArguments(args);returnf;/* Whencreating,retrievethisinstance'snumberfromitsarguments.* /Overridepublicvoi

30、donCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);mNum=getArguments()!=null?getArguments().getInt("num"):1;/* TheFragment'sUIisjustasimpletextviewshowingits* instancenumber.* /OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstan

31、ceState)Viewv=inflater.inflate(R.layout.hello_world,container,false);Viewtv=v.findViewById(R.id.text);(TextView)tv).setText("Fragment#"+mNum);tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb);returnv;用下面的方法创建一个新的Fragment实例,用它来替换当前被显示的Fragment实例,并把这种改变发布到

32、回退堆栈上:voidaddFragmentToStack()mStackLevel+;/Instantiateanewfragment.FragmentnewFragment=CountingFragment.newInstance(mStackLevel);/Addthefragmenttotheactivity,pushingthistransaction/ontothebackstack.FragmentTransactionft=getFragmentManager().beginTransaction();ft.replace(R.id.simple_fragment,newFrag

33、ment);ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);ft.addToBackStack(null);mit();每次调用上面这个方法之后,就会在堆栈上增加一个新的实体,并且按下回退键时,会把它从堆栈中弹出,并给用户返回之前的Activity状态。Android类参考-Fragment(三)类说明1 .嵌套类classFragment.InstantiationException当有一个实例化错误时,会通过instantiate(Context,String,Bundle)方法抛出这个异常类。classFragmen

34、t.SavedState通过FragmentManager.saveFragmentInstanceState(Fragment)方法从一个Fragment对象实例中获取要保存的状态信息。2. 继承的常量来自接口:android.content.ComponentCallbacks23. Public构造器和方法publicFragment()默认构造器。每个Fragment类都必须有一个空的构造器,以便在恢复Activity状态时能够用它能够来实例化Fragment对象。强烈的推荐Fragment的任何子类不要有带有参数的其他构造器,因为这些构造器在Fragment被重新实例化时不会被调用,

35、相反,能够通过调用setArguments(Bundle)方法把参数提供给调用者,并且随后可以通过Fragment的getArguments()方法来获取。通常,应用程序不应该实现这个构造器。在该Fragment对象首次准备运行的地方,使用onAttach(Activity)方法,将Fragment对象跟Activity对象关联到一起。某些应用程序还可能想要实现onInflate(Activity,AttributeSet,Bundle)方法,来从布局资源中获取属性,但是因为Fragment对象被绑定到Activity上,就应该小心的使用这种方法。publicvoiddump(Stringpr

36、efix,FileDescriptorfd,PrintWriterwriter,Stringargs)该方法把Fragment对象的状态打印到给定的二进制流中。参数:prefix:在每行前面要打印的文本。fd:转存信息要被发送给的原始文件描述符。writer:指定接收转存状态的PrintWriter对象,该方法返回后,这个PrintWriter对象会被关闭。args:指定转存请求的附加参数。publicfinalbooleanequals(Objecto)子类不同覆写这个方法。参数:。:指定要跟本实例比较的对象。返回值:true:指定的对象跟本对象相等,false:不相等。publicfina

37、lActivitygetActivity()返回跟该Fragment对象关联的Activity对象。publicfinalBundlegetArguments()返回该Fragment对象被实例化时所提供的参数。publicfinalFragmentManagergetFragmentManager()返回跟该Fragment的Activity关联的所有的Fragment对象的管理器-FragmentManager对象。要注意白是在Fragment对象被放置至UFragmentTransaction对象中,直到被提交给与它绑定的Activity期间,该方法一直返回null值。publicfin

38、alintgetId()该方法返回该Fragment对象的标识,这个标识既可以是在布局中提供的android:id属性值,也可以是在添加Fragment对象时提供的容器ViewID。publicLoaderManagergetLoaderManager()返回针对该Fragment对象的LoaderManager对象,如果需要就创建它。publicfinalResourcesgetResources()该方法返回跟Fragment对象关联的资源。publicfinalbooleangetRetainInstance()publicfinalStringgetString(intresId)从应

39、用程序包的默认字符串表中返回一个本地化的字符串。参数:resId要获取的字符串的资源ID。publicfinalStringgetString(intresId,ObjectformatArgs)从应用程序包的默认字符串表中返回一个被本地化的格式化字符串,用Formatter对象中format(String,Object)方法来替换格式化的参数。参数:resId指定格式化字符串的资源idformatArgs指定要替换的格式化参数publicfinalStringgetTag()如果Fragment对象被指定了名称,那么使用该方法来获取Fragment对象的名称。publicfinalFragm

40、entgetTargetFragment()返回由setTargetFragment(Fragment,int)方法所设置的目标Fragment对象。publicfinalintgetTargetRequestCode()返回由setTargetFragment(Fragment,int)方法所设置的目标请求编码。publicfinalCharSequencegetText(intresId)从应用程序包的默认字符串表中返回指定的本地化的、样式化的CharSequence对象。参数:resId指定要获取的CharSequence对象文本的资源id。publicfinalgetUserVisib

41、leHint()返回要该Fragment对象上显示给用户的提示信息的值。PublicViewgetView()获取该Fragment对象布局的根View对象,如果没有布局,则返回null。publicfinalinthashCode()子类不能覆盖重写该方法。返回对象的hashcode。publicstaticFragmentinstantiate(Contextcontext,Stringfname)除了没有Bundle参数以外,其他的跟instantiate(Context,String,Bundle)方法一样。publicstaticFragmentinstantiate(Context

42、context,Stringfname,Bundleargs)用给定的类名创建一个新的Fragment对象实例。它跟调用空的构造器一样。参数:context实例化该Fragment对象时要使用的上下文环境。当前只用于获取它的类装载器-ClassLoader对象。fname要实例化的Fragment类的名称。args指定要提供给Fragment对象的Bundle参数,可以使用getArguments()方法获取其中的参数。也可以是null返回一个新的Fragment对象实例。异常(Throws)InstantiationException如果在实例化给定的Fragment类时发生错误,就会抛出这

43、个运行时异常,它通常是不被期望发生的。Android类参考-Fragment(四)publicfinalbooleanisAdded()如果该Fragment对象被添加到了它的Activity中,那么它返回true,否则返回false。publicfinalbooleanisDetached()如果该Fragment已经明确的从UI中分离,那么它返回true。也就是说,在t咬Fragment对象上使用FragmentTransaction.detach(Fragment)方法。该方法在APILevel13中被引入。publicfinalbooleanisHidden()如果该Fragment对

44、象已经被隐藏,那么它返回true。默认情况下,Fragment是被显示的。能够用onHiddenChanged(boolean)回调方法获取该Fragment对象状态的改变,要注意的是隐藏状态与其他状态是正交的-也就是说,要把该Fragment对象显示给用户,Fragment对象必须是被启动并不被隐藏。PublicfinalbooleanisInLayout()如果布局通过fragment标签被包含在Activity层次树中,那么它就返回true。当Fragment是通过fragment标签来创建的时候,这个方法始终会返回true。从之前的状态恢复旧的Fragment对象,并且该对象没有显示在

45、当前状态的布局中的情况除外。PublicfinalbooleanisRemoving()如果当前的Fragment对象正在从它的Activity中被删除,那么就返回true。这删除过程不是该Fragment对象的Activity的结束过程,而是把Fragment对象从它所在的Activity中删除的过程。publicfinalbooleanisResumed()如果Fragment对象是在恢复状态中,该方法会返回true。在onResume()和onPause()回调期间,这个方法都返回true。PublicfinalbooleanisVisible()如果该Fragment对象对用户可见,那

46、么就返回true。这就意味着它:1,已经被添加到Activity中;2,它的View对象已经被绑定到窗口中;3,没有被隐藏。PublicvoidonActivityCreated(BundlesavedInstanceState)当Fragment对象的Activity被创建,并且Fragment对象的View层次树被实例化的时候,系统会调用这个方法。能够利用这个方法来做一些最后的初始化处理,如获取或恢复状态,还可用于那些使用setRetainlnstance(boolean)方法来保留它们的实例的Fragment对象,因为这个回调方法会告诉Fragment对象,它是在什么时候跟这个新的Act

47、ivity实例关联的。该回调方法在onCreateView(LayoutInflater,ViewGroup,Bundle)之后和onStart()之前被调用。参数savedInstanceState如果该Fragment对象正在被重建,那么该参数指定之前被保存的状态。publicvoidonActivityResult(intrequestCode,intresultCode,Intentdata)方法的结果。在Activity方法的介绍。提供的初始请求Code,允许用setResult()方法设置并返回的结果接收来自前面调用startActivityForResult(Intent,int

48、)API的相关介绍中有关于onActivityResult(int,int,Intent)参数requestCode这个整数是由startActivityForResult()来标识该结果的来源。resultCode这个整数是由子Activity通过它的Code。Data一个Intent类型的对象,它把结果数据返回给调用者(能包各种数据绑定给Intent对象的extras属性字段)。publicvoidonAttach(Activityactivity)当该Fragment对象被第一次绑定到它的Activity时,系统会调用这个方法。这个方法被调用之后,系统会调用该Fragment对象的onC

49、create(Bundle)方法。publicvoidonConfigurationChanged(ConfigurationnewConfig)当设备配置改变且组件正在运行时,系统会调用这个方法。要注意的是,跟Activity不一样,在配置改变时,其他的组件不会被重启:它们始终通过重新获取资源来处理这种改变。在该功能被调用后,被更新的资源对象会返回与新的配置相匹配的资源值。参数newConfing指定新的设备配置。publicbooleanonContextItemSelected(MenuItemitem)在上下文菜单中的一个菜单项被选择时,系统会调用这个回调方法。对于所放生的普通的处理过

50、程,该方法的默认实现只是简单的返回false(调用该项目的Runnable对象或把一个消息发送给相应的Handler)。可以使用这个方法针对菜单项做一些其他的处理。使用getMenuInfo()方法来获取由添加给菜单项的View对象所设置的附加信息。其子类应用通过调用基类的该方法实现来执行默认的菜单处理。参数item该参数指定了被选择的上下文菜单项。返回值如果允许正常的上下文菜单处理,就返回false,否则返回true。publicvoidonCreate(BundlesavedInstanceState)Fragment对象被初始创建时,系统会调用该方法。调用时机是在onAttach(Act

51、ivity)之后,onCreateView(LayoutInflater,ViewGroup,Bundle)之前。要注意的是,该方法在其Fragment的Activity依然在被创建的过程中,也能够被调用。因此,不能在这个时点依赖正在被初始化的Activity的上下文View层次树。参数savedInstanceState如果该Fragment正在被重建,那么这个参数会指定Fragment之前的状态。publicAnimatoronCreateAnimator(inttransit,booleanenter,intnextAnim)在Fragment对象加载一个动画时,系统会调用这个方法。An

52、droid类参考-Fragment(五)publicvoidonCreateContextMenu(ContextMenumenu,Viewv,ContextMenu.ContextMenuInfomenuInfo)当View对象相关的上下文菜单显示的时候,系统会调用该方法。跟onCreateOptionMenu(Menu,MenuInflater)不同,这个方法在上下文菜单每次显示的时候,都会被调用,并且应该被填入对应的View对象。使用onContextIntemSelected(android.view.MenuItem)方法来获取被选择的菜单项。这个方法的默认实现是调用Activity

53、.onCreateContextMenu方法,不过如果不想要这个默认行为,也能够不调用这个实现。在这个方法返回之后,持有该上下文菜单是不安全的。当该上下文菜单所对应View对象被创建时,这个方法会被调用。参数menu该参数指定要创建的上下文菜单。v该参数指定要创建的上下文菜单所对应的View对象。menuInfo该参数指定要显示的上下文菜单的菜单项的附加信息。这个信息会根据v参数的类型而有所不同。publicvoidonCreateOptionsMenu(Menumenu,MenuInflaterinflater)该方法初始化Activity的标准的选项菜单的内容。应该把菜单项放到menu参数

54、中。针对该方法的调用,必须要首先调用setHasOptionsMenu(boolean)方法。更多信息请看Activity.onCreateOptionsMenu。参数menu该参数指定要放置菜单项的那个选项菜单。publicViewonCreateView(LayoutInflater,inflater,ViewGroupcontainer,BundlesavedInstanceState)调用该方法,初始化Fragment的用户界面。这个方法是可选的,并且对于非图形化的Fragment对象,该方法会返回null(这是默认的实现)。该方法在onCreate(Bundle)和onActivit

55、yCreated(Bundle)方法之间被调用。View对象,那么在该View对象被释放时,会调用如果从该方法中返回一个onDestroyView()方法。inflager该LayoutInflater对象能够被用于填充Fragment对象中任何View对象。Container如果该参数是非空(non-null),那么它指定了Fragment对象的UI应该被绑定到这个参数所指向的容器上,它是Fragment对象的父容器。Fragment对象不应该把这个View对象添加到自己的布局中,但是能够使用它来生成View对象的LayoutParams对象。savedInstanceState如果该参数是非空(non-null),那么就会使用该参数中所保持的状态值来重建Fragment对象。返回值该方法返回对应的Frag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论