码迷,mamicode.com
首页 > 移动开发 > 详细

android项目实战-背呗单词DEV05-主界面自定义menu

时间:2016-05-18 12:16:01      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:

该篇说明

该篇我们进行主界面自定义底部菜单使用的讲解

主界面也就是当天任务界面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

标签:

原文地址:http://www.cnblogs.com/vomzoo/p/5504380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!