Menu用法简介

官网介绍:

http://developer.android.com/guide/topics/resources/menu-resource.html


1、通过程序动态布局



2、通过Menu.xml文件布局




ActionBar的Item会分有好几个种类,分别有


1).普通类型(带图片带文字)。

<item
android:id="@+id/menu_save"
android:icon="@drawable/save"
android:showAsAction="ifRoom|withText"
android:title="@string/menu_save"></item>


一个最普通的带文字带图片的Item。


能否显示在ActionBar的Item主要看android:showAsAction="ifRoom|withText"这个属性。

android:showAsAction总共有五个属:

  • never:永远不会显示。只会在溢出列表中显示。
  • ifRoom:会显示在Item中,但是如果已经有4个或者4个以上的Item时会隐藏在溢出列表中。
  • always:无论是否溢出,总会显示。
  • withText:Title会显示。
  • collapseActionView:可拓展的Item。


2).分享类型。 

<item
android:id="@+id/menu_share"
android:actionProviderClass="android.widget.ShareActionProvider"
android:enabled="true"
android:showAsAction="ifRoom"
android:title="@string/menu_share"/>


android:actionProviderClass="android.widget.ShareActionProvider"表示这个Item是个分享Item

代码实现


public boolean onCreateOptionsMenu(Menu menu) {
// 添加分享按钮的事件
// 4.0以下没有ShareActionProvider
MenuItem menuItem_share = menu.findItem(R.id.menu_share);
// Get the provider and hold onto it to set/change the share intent.
mShareActionProvider = (ShareActionProvider) menuItem_share
.getActionProvider();
// If you use more than one ShareActionProvider, each for a different
// action,
// use the following line to specify a unique history file for each one.
// mShareActionProvider.setShareHistoryFileName("custom_share_history.xml");
  
// Set the default share intent
mShareActionProvider.setShareIntent(getDefaultShareIntent());
}
private Intent getDefaultShareIntent() {
// TODO Auto-generated method stub
Log.i(TAG, "getDefaultShareIntent");
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "小清新短信闪");
intent.putExtra(Intent.EXTRA_TEXT, "小清新短信闪 1.0");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return intent;
}



3).可拓展类型。

<item
android:id="@+id/menu_collapse"
android:actionLayout="@layout/collapsibleview"
android:icon="@drawable/search"
android:showAsAction="ifRoom|collapseActionView"
android:title="@string/menu_search">
</item>


他有俩个属性是android:actionLayout="@layout/collapsibleview" android:showAsAction="ifRoom|collapseActionView"
android:actionLayout="@layout/collapsibleview" 是点item后拓展成的View
android:showAsAction="collapseActionView"代表他是一个可拓展的Item


Button btnn;
EditText editText;
private ShareActionProvider mShareActionProvider;
  
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
// 给可折叠的view上的控件添加事件
LinearLayout viewGroup = (LinearLayout) menu.findItem(
R.id.menu_collapse).getActionView();
btnn = (Button) viewGroup.findViewById(R.id.colla_btn);
editText = (EditText) viewGroup.findViewById(R.id.colla_edit);
btnn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),
editText.getText() + "~", 0).show();
}
});
}



可拓展的Item同时还支持一个拓展事件。只有在4.0以后的Api提供:

MenuItem menuItem = menu.findItem(R.id.menu_collapse);
menuItem.setOnActionExpandListener(new OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),
"onMenuItemActionExpand", 0).show();
return true;
}
  
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),
"onMenuItemActionCollapse", 0).show();
return true;
}
});




4).列表类型。

element navmenu 是 Element UI 组件库中的一个导航菜单组件,它可以用于创建响应式的网页导航菜单。 使用 element navmenu 的方法如下: 1. 安装 Element UI:在项目中引入 Element UI 组件库,并按照官方文档进行安装和配置。 2. 导入 navmenu 组件:在需要使用的页面中,通过 import 语句导入 navmenu 组件。 3. 在模板中使用 navmenu 组件:在模板中使用 <el-menu> 标签包裹菜单内容,并设置菜单的样式和布局。 4. 配置菜单项:在 <el-menu> 中使用 <el-menu-item> 或 <el-submenu> 标签定义菜单项内容。 5. 设置菜单的属性和事件:通过配置 <el-menu> 的属性和事件,可以实现菜单的样式、布局和交互效果的设置。 例如,以下是一个使用 element navmenu 的示例代码: ```html <template> <div> <el-menu :default-active="activeItem" mode="horizontal"> <el-menu-item index="1">菜单项1</el-menu-item> <el-menu-item index="2">菜单项2</el-menu-item> <el-submenu index="3"> <template slot="title">子菜单</template> <el-menu-item index="3-1">子菜单项1</el-menu-item> <el-menu-item index="3-2">子菜单项2</el-menu-item> </el-submenu> </el-menu> </div> </template> <script> import { ElMenu, ElMenuItem, ElSubmenu } from 'element-ui'; export default { components: { 'el-menu': ElMenu, 'el-menu-item': ElMenuItem, 'el-submenu': ElSubmenu }, data() { return { activeItem: '1' }; } }; </script> ``` 以上代码展示了一个水平布局的导航菜单,其中包含两个顶级菜单项和一个带有两个子菜单项的子菜单。通过设置 activeItem 属性,可以控制默认激活的菜单项。 通过以上步骤,可以使用 element navmenu 创建一个简单的导航菜单,并进行个性化的样式和交互效果设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值