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的主要内容,如果未能解决你的问题,请参考以下文章

android项目实战-背呗单词DEV07-单词测试实现

android项目实战-背呗单词00-文章目录

android项目实战-背呗单词02-项目概述

android项目实战-背呗单词03-项目图表

Android ActionBar应用实战,高仿微信主界面的设计

Android实战简单新闻主界面设计