您现在的位置是:主页 > news > wordpress 站长/百度极速版客服电话

wordpress 站长/百度极速版客服电话

admin2025/5/17 13:06:31news

简介wordpress 站长,百度极速版客服电话,如何自己动手做网站,wordpress二维码用户登录最近做一个项目,要求在一个activity中加载多个Fragment,用底部导航栏来相互切换,在切换过程中对Menu菜单的显示与隐藏.先来分析一下:android4.0之后引入了fragment的概念,它的生命周期函数和activity几乎一样。对菜单的操作也是通过onCreateOptionMenu()实现的。fra…

wordpress 站长,百度极速版客服电话,如何自己动手做网站,wordpress二维码用户登录最近做一个项目,要求在一个activity中加载多个Fragment,用底部导航栏来相互切换,在切换过程中对Menu菜单的显示与隐藏.先来分析一下:android4.0之后引入了fragment的概念,它的生命周期函数和activity几乎一样。对菜单的操作也是通过onCreateOptionMenu()实现的。fra…

最近做一个项目,要求在一个activity中加载多个Fragment,用底部导航栏来相互切换,在切换过程中对

Menu菜单的显示与隐藏.

先来分析一下:

android4.0之后引入了fragment的概念,它的生命周期函数和activity几乎一样。对菜单的操作也是通过

onCreateOptionMenu()实现的。

fragment可以通过实现 onCreateOptionMenu() 提供菜单项给activity的选项菜单。为了使这个方法接收

调用,无论如何, 你必须在 onCreate() 期间调用 setHasOptionsMenu() 来指出fragment愿意添加item到选项菜

单(否则, fragment将接收不到对 onCreateOptionsMenu()的调用)

随后从fragment添加到Option菜单的任何项,都会被 追加到现有菜单项的后面.当一个菜单项被选择, fragment

也会接收到 对 onOptionsItemSelected() 的回调.也可以在你的fragment layout中通过调用 registerForContextMenu()

注册一个view来提供一个环境菜单.当用户打开环境菜单, fragment接收到一个对 onCreateContextMenu() 的调用.

当用户选择一个项目, fragment接收到一个对onContextItemSelected() 的调用.

注意: 尽管你的fragment会接收到它所添加的每一个菜单项被选择后的回调,  但实际上当用户选择一个菜单项时,

activity会首先接收到对应的回调.如果activity的on-item-selected回调函数实现并没有处理被选中的项目, 然后事件

才会被传递到fragment的回调.

下面来看看代码 ,目的是我需要在fragment1中显示menu , 在fragment2中隐藏menu

1.要在fragment1 的onCreate() 期间调用 setHasOptionsMenu()

来指出fragment愿意添加item到选项菜单

@Overridepublic voidonCreate(@NullableBundle savedInstanceState) {

super.onCreate(savedInstanceState);

setHasOptionsMenu(true);

}

@Overridepublic voidonCreateOptionsMenu(Menu menu, MenuInflater inflater) {

super.onCreateOptionsMenu(menu, inflater);

menu.add(0, 1, 0, "新建").setIcon(R.mipmap.icon_menu_add)

.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

//对整个菜单进行显示

menu.setGroupVisible(R.menu.menu_main,true);

}@Overridepublic booleanonOptionsItemSelected(MenuItem item) {switch(item.getItemId()) {case1://完成菜单点击的操作break; }return super.onOptionsItemSelected(item);}

2.

要在fragment2中隐藏menu

@Overridepublic voidonCreate(@NullableBundle savedInstanceState) {

super.onCreate(savedInstanceState);

setHasOptionsMenu(true);

}

@Overridepublic voidonCreateOptionsMenu(Menu menu, MenuInflater inflater) {

super.onCreateOptionsMenu(menu, inflater);

menu.setGroupVisible(R.menu.menu_main,false);

}

以上是在Fragment中对菜单的显示与隐藏,而在Activity中更简单 , 看代码

// 1. 定义mMenu成员变量privateMenu mMenu;

// 2. 在onCreateOptionsMenu()里初始化mMenu,并隐藏Menu item@Overridepublic booleanonCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.menu_main, menu);

mMenu= menu;

mMenu.findItem(R.id.menu_tem).setVisible(false);

return true;}

//使用findItem()通过item ID找到Item。使用getVisible(false)来隐藏Menu Item。//在onCreateOptionsMenu()中调用setVisible(false),会使Menu Item默认隐藏。// 3. 在想显示menu item的时候,调用setVisible(true)即可。mMenu.findItem(R.id.menu_tem).setVisible(true);