Android类参考---Fragment(五)

本文详细解析了Android中View对象上下文菜单显示时的生命周期方法,包括onCreateContextMenu、onCreateOptionsMenu和onCreateView等核心API的使用场景、参数意义及注意事项。
摘要由CSDN通过智能技术生成


public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)

当View对象相关的上下文菜单显示的时候,系统会调用该方法。跟onCreateOptionMenu(Menu, MenuInflater)不同,这个方法在上下文菜单每次显示的时候,都会被调用,并且应该被填入对应的View对象。

使用onContextIntemSelected(android.view.MenuItem)方法来获取被选择的菜单项。

这个方法的默认实现是调用Activity.onCreateContextMenu方法,不过如果不想要这个默认行为,也能够不调用这个实现。

在这个方法返回之后,持有该上下文菜单是不安全的。当该上下文菜单所对应View对象被创建时,这个方法会被调用。

参数

menu 该参数指定要创建的上下文菜单。

v 该参数指定要创建的上下文菜单所对应的View对象。

menuInfo 该参数指定要显示的上下文菜单的菜单项的附加信息。这个信息会根据v参数的类型而有所不同。

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)

该方法初始化Activity的标准的选项菜单的内容。应该把菜单项放到menu参数中。针对该方法的调用,必须要首先调用setHasOptionsMenu(boolean)方法。更多信息请看Activity.onCreateOptionsMenu。

参数

menu 该参数指定要放置菜单项的那个选项菜单。

public View onCreateView(LayoutInflater, inflater, ViewGroup container, Bundle savedInstanceState)

调用该方法,初始化Fragment的用户界面。这个方法是可选的,并且对于非图形化的Fragment对象,该方法会返回null(这是默认的实现)。该方法在onCreate(Bundle)和onActivityCreated(Bundle)方法之间被调用。

如果从该方法中返回一个View对象,那么在该View对象被释放时,会调用onDestroyView()方法。

参数

inflager  该LayoutInflater对象能够被用于填充Fragment对象中任何View对象。

Container  如果该参数是非空(non-null),那么它指定了Fragment对象的UI应该被绑定到这个参数所指向的容器上,它是Fragment对象的父容器。Fragment对象不应该把这个View对象添加到自己的布局中,但是能够使用它来生成View对象的LayoutParams对象。

savedInstanceState  如果该参数是非空(non-null),那么就会使用该参数中所保持的状态值来重建Fragment对象。

返回值

该方法返回对应的Fragment UI的View对象,或者是null。

public void onDestroy()

当Fragment不再被使用时,系统会调用该方法。在onStop()方法之后、onDetach()方法之前被调用。

Public void onDestroyOptionsMenu()

当该Fragment的选项菜单项目不再被包含在整体的选项菜单中时,系统会调用该方法。收到这个调用,意味着该菜单需要被重建,但是这个Fragment的项目没有被包含在最新创建的菜单中(它的onCreateOptionsMenu(Menu, MenuInflater)方法不会被调用)。

public void onDestroyView()

当先前用onCreateView(LayoutInflater, ViewGroup, Bundle)方法创建的View对象从Fragment对象中解除绑定的时候,系统会调用这个方法。在下次需要显示这个Fragment对象时,要创建一个的View对象。这个方法在onStop()方法之后、onDestroy()方法前被调用。调用这个方法与onCreateView(LayoutInflater, ViewGroup, Bundle)方法是否返回了非空的View对象无关。在这个方法调用的内部,要先保存该View对象的状态,然后才能把它从器父对象中删除。

public void onDetach()

当该Fragment对象不在跟它的Activity绑定时,系统会调用这个方法。它是在onDestroy()方法之后被调用。

public void onHiddenChanged(boolean hidden)

当该Fragment对象改变了隐藏状态(由isHidden()方法返回)时,系统会调用这个方法。Fragment初始是不隐藏的,只要Fragment对象改变了它的显示状态,就会调用该方法。

参数

hidden  如果该Fragment对象现在是隐藏的,则该参数是true,否则是false。

public void onInflate(AttributeSet attrs, Bundle savedInstanceState)

该方法在API Level 12以后已经被废弃了,请使用onInflate(Activity, AttributeSet, Bundle)方法来代替。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值