android项目实战-背呗单词DEV05-主界面自定义menu
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android项目实战-背呗单词DEV05-主界面自定义menu相关的知识,希望对你有一定的参考价值。
该篇说明
该篇我们进行主界面自定义底部菜单使用的讲解
主界面也就是当天任务界面FragmentActivity
自定义menu的功能需要导入V1UILibrary即可
源码地址:https://github.com/vomzoo/VOMAndroidUILib
在主界面只是调用自定义menu,具体实现暂请看V1UILibrary源码
效果如图
流程图
主要UI功能
1> 重写onCreateOptionsMenu并添加一项
/** * 自定义menu,必须创建一项 */ @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add("menu"); return super.onCreateOptionsMenu(menu); }
2> 重写onMenuOpened拦截默认menu并设置menu
/** * 拦截menu * 返回false,则说明显示自定义menu */ @Override public boolean onMenuOpened(int featureId, Menu menu) { if(customMenuPopupWindow != null) { if(customMenuPopupWindow.isShowing()) { customMenuPopupWindow.dismiss(); } else { //显示窗口 //设置layout在PopupWindow中显示的位置 customMenuPopupWindow.showAtLocation( this.findViewById(R.id.todayTaskLinearLayout), Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); } } return false; }
3> 创建实现OnItemClickListener的类来设置menu项
/** * menu点击事件 * 根据点击跳转 */ class BodyClickEvent implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long arg3) { if(position != 2) { context.startActivity(new Intent(context, resultClassArray[position])); if(customMenuPopupWindow.isShowing()) { customMenuPopupWindow.dismiss(); } if(position == 1) { activity.finish(); } } else { SystemUtil.exitApp(activity); } } }
4> 初始自定义menu
/** * 初始化创建自定义menu * 第三个参数,menu背景,0代表白色 */ private void initNewPopupWindow() { customMenuPopupWindow = new CustomMenuPopupWindow( this, bodyAdapterImgArray.length, new BodyClickEvent(), SystemUtil.screenHeight); customMenuPopupWindow.setBodyAdapter(bodyAdapter); }
更多请自行下载源码解读
应用下载:请点击
源码下载:请点击
以上是关于android项目实战-背呗单词DEV05-主界面自定义menu的主要内容,如果未能解决你的问题,请参考以下文章