自定义菜单,主要的思路就是利用PopupWindow来模仿菜单的效果。效果图如下:


具体代码如下:

1、关键代码

      

ArrayAdapter listAdatper = new ArrayAdapter(getApplicationContext(),         R.layout.item_menu_list,         R.id.menuText, new String[]{"删除","设置"});        // 加载popupWindow的布局文件          View popupWindowView = LayoutInflater.from(getApplicationContext())                  .inflate(R.layout.view_popwindow, null);          final ListView menuList = (ListView)popupWindowView.findViewById(R.id.menuList);        menuList.setAdapter(listAdatper);        menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {switch (position) {case 0:// 删除Log.e(TAG, "000000000");break;case 1:// 设置Log.e(TAG, "111111111");break;default:Log.e(TAG, "default");break;}}});                final PopupWindow popupWindow = new PopupWindow(popupWindowView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);        mainMenu.setOnClickListener(new OnClickListener() {@SuppressWarnings("deprecation")@Overridepublic void onClick(View v) {// 如果不在弹出之前加上这条语句,ListView的item将无法点击 popupWindow.setFocusable(true);// 防止弹出菜单获取焦点之后,点击activity的其他组件没有响应popupWindow.setBackgroundDrawable(new BitmapDrawable()); popupWindow.showAsDropDown(mainMenu); }});

2、xml文件代码

       1)item_menu_list.xml

             

<?xml version="1.0" encoding="utf-8"?>    

       2)view_popwindow.xml

             

<?xml version="1.0" encoding="utf-8"?>    

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. Android(安卓)JNI(实现自己的JNI_OnLoad函数)
  7. Android(安卓)代码中对不同国家支持的信道的设置
  8. MyEclipse本地搭建Android环境
  9. Android系统横竖屏切换时候Activity的生命周期

随机推荐

  1. 教你瘦身zxing(android)
  2. 开箱即用!Android四款系统架构工具
  3. Android对不同DPI的dimen选择优先级问题
  4. Android AIDL服务学习笔记
  5. 福利来了!带你“爱上Android”
  6. selector背景以及android的透明色
  7. Android启动过程以及各个镜像的关系
  8. 如何移植ROS程序到Android
  9. Android第三章 (UI)
  10. android studio gradle 多渠道打包之完全