首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发笔记(六十五)多样的菜单

onContextMenuClosed方法关闭整个菜单,而选项菜单只是在界面上消失,并未调用关闭菜单方法onOptionsMenuClosed; 弹窗PopupWindow 在实际开发中,Android...自带的菜单显得朴素不够灵活,一个是位置固定,如选项菜单固定从页面底部弹出,溢出菜单固定从页面右上角弹出,上下文菜单固定显示在页面中央;另一个是样式固定,无法设置菜单背景,也无法设置其他的菜单显示元素(即使是简单显示左侧图标...为解决以上不足,我们可利用弹窗PopupWindow来实现任意位置的菜单展示,以及可定制的菜单样式。...PopupWindow的机制是实现一个弹出框,其内容可以是任意布局的View,其页面悬浮在当前Activity页面之上。...如为true则弹窗以外区域不可点击,如为false则弹窗以外区域可以点击。 setBackgroundDrawable : 设置弹窗的背景。

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android从零单排系列二十三】《Android视图控件——PopupWindow》

    一 PopupWindow基本介绍 PopupWindow是Android中的一个弹出窗口控件,它可以在屏幕上方或下方弹出一个类似浮层的视图。...通过PopupWindow,可以在当前Activity的顶层上展示一个新的视图,并且可以设置其位置、大小、动画效果等属性。...二 PopupWindow使用方法 要使用PopupWindow,可以按照以下步骤进行操作: 创建PopupWindow对象: PopupWindow popupWindow = new PopupWindow...位置和偏移: showAsDropDown(View anchor):将PopupWindow显示在指定锚点View的下方。...四 总结 PopupWindow是Android中用于实现弹出式窗口的控件,可以展示自定义的视图,并具有灵活的位置、大小和样式设置。

    58310

    信息提醒之Toast-更新中

    概述 Toast与对话框类似,也会在屏幕的某个位置弹出一个窗口,在窗口中可以显示文本、图片等信息 与对话框不同的是,Toast信息提示框不可获得焦点,而且在显示一定的时间后会自动关闭。...因此,再显示Toast信息提示框的同时,屏幕上的控件仍然可以继续操作。 Toast的基本用法 显示Toast需要使用android.widget.Toast类。...); 分析: 上述代码使用Toast类的静态方法创建了一个Toast对象。...注意:在创建只显示文本的Toast对象时,建议使用Toast.makeText方法,而不要直接new Toast对象,虽然Toast类有setText方法,但是不能在使用new关键字创建Toast对象后设置...> 如果同时多个Toast信息提示框,系统会将这些Toast信息提示框放到队列中,等前一个Toast信息提示框关闭后会显示下一个Toast信息提示框,也就是说Toast信息提示框是按顺序显示的 ----

    75150

    Android项目实战(十七):QQ空间实现(二)—— 分享功能 弹出PopupWindow

    分析: 1、点击右上角三个点的图标,在界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现的时候,详情界面便灰了,也说成透明度变化了 3、当任意选了一个按钮或者点击了该区域以外的部分...PopupWindow ,注意 父容器需要有一个id,因为我们需要它来给PopupWindow设置弹出的位置 android="http://schemas.android.com...之外的部分 关闭popupWindow mMenuView.setOnTouchListener(new OnTouchListener() { public...中的任意按钮,记得关闭此popupWindow, feedSelectPopupWindow.dismiss(); } }; /**...()方法上,那么要注意PopupWindow和Dialog一样是需要依赖于Activity存在的 所以不要在onCreate()方法中使用 .showAtLocation()方法 ,因为这个时候Activity

    1.1K60

    PopupWindow

    一个弹出窗口控件,可以用来显示任意View,而且会浮动在当前activity的顶部 常用构造方法 一下仅列出本人认为常用的构造方法,全部构造方法(9个….)请查看官方文档。...,下方Gravity.BOTTOM等),可以设置偏移或无偏移 PS:parent这个参数只要是activity中的view就可以了!...setWidth/setHeight 设置宽高,也可以在构造方法那里指定好宽高, 除了可以写具体的值,还可以用WRAP_CONTENT或MATCH_PARENT, popupWindow的width和height...实际上, 如果: setFocusable(true); 则PopUpWindow本身可以看作一个类似于模态对话框的东西(但有区别),PopupWindow弹出后,所有的触屏和物理按键都有PopupWindows...如此设置才能让PopupWindow在点击back的时候消失。

    87940

    Android弹窗二则: PopupWindow和AlertDialog

    这里说两个常用的弹窗类, PopupWindow和AlertDialog. 我的理解就是, PopupWindow较为随性, 可以在任意位置弹窗, 比如你经常看到的朋友圈点赞的那个小的弹窗....(R.style.anim_menu_bottombar); popupWindow.showAsDropDown(bt_popup, 0, 0); 解析: 首先肯定是创建一个PopupWindow...在高版本的android中(比如8.0), 实测可以不写, 但是低版本就不行了(比如4.1), 低版本不写的话, 会导致点击返回或者是屏幕其它地方无法取消弹窗, 所以稳妥起见还是加上, 并设置一个透明色...单选多选条目展示 ---- 内容补充 补充: 我们现在来说一个比较复杂的, 也比较有意思的. 就是在弹窗中填充自定义view....要说的是, 大家仔细看效果图, 会发现自定义View可以和builder.setMessage("message");共存, 但事实上, 好像没有这个必要, 我故意把一些非自定义的也展示出来, 其实自定义

    1.6K60

    —PopupWindow

    这里说的不容易指定位置是没有方便的系统的接口来控制 Dialog 的显示位置,当然你可以使用 WindowManager 来指定 Dailog 的显示位置,但对于 PopupWindow 你可以通过系统提供的接口随意定义显示位置...--> PopupWindow 是否获取焦点 创建 PopupWindow 必须要是三个条件,缺少一个无法显示: 1. void setHeight (int height) // 因为PopupWindow...页面中只有一个 Button ,我们创建的 PopupWindow 会把这 Button 传入到 PopupWindow 的 show() 方法当作上面所说的那个锚点 View— anchor 。...看有点奇怪,其实是只传一个参数,没有传入位置信息,默认显示在左下方。...在图中可以看到,我们创建了两个 xml 资源描述 PopupWindow进入动画与退出动画。 <?

    1.2K50

    Android使用后端云Bmob实现登录、注册及失物招领

    最近在使用后端云Bmob对数据进行存储,目的是在不搭建服务器的前提下,能对Android应用的数据进行操作处理。...创建成功之后点击创建的应用进去,在设置->应用秘钥中可以找到应用秘钥 [6bqypkxzem.png] 在这里插入图片描述 三、AndroidStudio SDK导入信息配置 详细参考:http:/.../doc.bmob.cn/data/android/index.html 1、在 Project 的 build.gradle 文件中添加 Bmob的maven仓库地址 buildscript {...有了这个类,你就可以在你的应用程序中添加用户账户功能。BmobUser是BmobObject的一个子类,它继承了BmobObject所有的方法,具有BmobObject相同的功能。...8-3、需要Demo源码的童鞋,可以在底部公众号回复:"BmobDemo"即可获取。 小编整理了一份Android电子书籍,需要的童鞋关注公众号回复:"e_books" 即可获取哦!

    3.3K30

    【Android】在任意位置弹出PopupWindow

    前言 在日常的开发中,经常会有弹框的操作。实现弹框有两种选,PopupWindow或者Dialog,这里就先忽略Dialog。...弹框可能会在各种位置出现,在指定View的上、下、左、右、左对齐、右对齐等......PopupWindow 平时我们可能是这样用PopupWindow的: 创建一个布局,再创建一个类继承PopupWindow public class TestPopupWindow extends...各种位置的弹窗 下面就来利用xoff、yoff在你想要的任何位置弹框。 准备工作 弹框前,需要得到PopupWindow的大小(也就是PopupWindow中contentView的大小)。...大小后,就在任意位置弹窗了 弹框的位置无非就是根据PopupWindow以及指定View的大小,计算水平、竖直方向偏移。

    4.5K110

    三星折叠屏开发者设计指南揭秘

    不要在活动的OnDestroy()中调用finish()或自行终止进程,否则将导致APP在设备折叠或展开时关闭。...image 2.2 APP如何在Multi-resume运行 在Android P (9.0)中启用Multi-resume,请在应用清单manifest中增加如下元数据: ? image 3....3.2 优化内外屏布局 可折叠移动设备中,应用程序可以运行在大小不同的显示屏幕中,我们首先建议添加一个单独的资源文件夹来展示更丰富更清晰的内容。...备用布局,Android允许应用针对不同屏幕配置提供多种备选布局。可以利用配置限定符实现此目的,它允许系统根据当前配置(如针对不同屏幕尺寸的不同布局设计)自动选择合适的资源。...多活动窗口 当手机展开时,用户可以同时运行两到三个APP,可在任意Samsung Android 9.0设备上通过元数据方式测试多活动窗口。

    4.1K40

    Android进阶之绘制-自定义View完全掌握(三)

    自定义View系列的第三篇博客,我们来学习如何实现自定义下拉框。 今天的程序,我们来实现这样的一个效果。 ? 布局非常简单,我们直接开始编码。...else{ viewHolder = (ViewHolder) convertView.getTag(); } //根据位置得到数据...唯一需要注意的地方就是,因为我们的PopupWindow类是设置了宽为200,而只要是在代码中设置的控件属性,它的单位均为px(像素),而像素是没有适配功能的,所以为了使我们的程序能够在任意分辨率的手机上正确运行...提供给大家一个工具类,用于dp与px之间的转换。...这样,我们的下拉框也就实现了。现在有了dp和px之间转换的工具类,我们就可以在需要屏幕适配的地方使用它了,包括我们之前练习的一些项目。 源码已上传至GitHub

    49340

    Android网络请求慢的时候,任意位置弹出加载中提示

    大家好我是王大锤,我们老板给我一个任务,让我在任何有网络请求的地方,如果时间超过一秒就提示一个加载中的提示,好去捞客户的钱 。...} } } OK初步已经完成了,开始沾沾自喜了,欣喜的笑容很快就印在嘴角上了,然后我又遇到了一个问题, 我想在控件的下方正中央显示,可是我获取到的popuwindow的宽度总是0是怎么回事?...} } fun show() { // 显示的位置为,控件的下方水平中间的位置 showAsDropDown(parView,parView.width...输入图片说明 这里使用了RXJAVA用来避免在子线程中修改UI,以及延时一秒以做到判断是否网络卡的情况 当然,既然是popuwindow,你就可以随意更改提示的图样,或者文字。...配合你自己的网络请求框架或者封装,就可以做到一个提示。 ---- END.

    65050

    Android网络请求慢的时候,任意位置弹出加载中提示

    大家好我是王大锤,我们老板给我一个任务,让我在任何有网络请求的地方,如果时间超过一秒就提示一个加载中的提示,好去捞客户的钱 。...} } } OK初步已经完成了,开始沾沾自喜了,欣喜的笑容很快就印在嘴角上了,然后我又遇到了一个问题, 我想在控件的下方正中央显示,可是我获取到的popuwindow...} } fun show() { // 显示的位置为,控件的下方水平中间的位置 showAsDropDown...这里使用了RXJAVA用来避免在子线程中修改UI,以及延时一秒以做到判断是否网络卡的情况 当然,既然是popuwindow,你就可以随意更改提示的图样,或者文字。...配合你自己的网络请求框架或者封装,就可以做到一个提示。 END.

    1.6K30

    Android技能树 — PopupWindow小结

    前言: 关于下拉选择框,估计大家都有很多选择,我在以前的文章:项目需求讨论-HyBrid模式需求改造 上写过下拉框选择这一块,正好用的Spinner。...PopupWindow显示在这个控件的下方;而showAtLocation是相对于屏幕,可以通过设置Gravity来指定PopupWindow显示在屏幕的那个位置。...我们可以看到在我们的工具类中,有一段代码: builder.view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED...我们应该都做过或者看见过添加悬浮窗等功能,或者在某些文章看见过Window和WindowManager的介绍,比如在《Android艺术开发之旅》里面,也有相关的一章专门讲这个,大家可以看下: Android...真正的样子,也就是view创建出来' preparePopup(p); //'findDropDownPosition方法确定好PopupWindow要显示的位置' final

    1.4K11

    Android技能树 — PopupWindow小结

    前言: 关于下拉选择框,估计大家都有很多选择,我在以前的文章:项目需求讨论-HyBrid模式需求改造 上写过下拉框选择这一块,正好用的Spinner。...所以我们可以先来看下我们需要的下拉框样式:(为了随便举个例子,所以设计的比较丑): 我们可以一步步来看如何实现: 1.基础使用教程 既然要跳出下面的弹框,而且本文说过要使用PopupWindow,所以就是实现一个...是相对于屏幕,可以通过设置Gravity来指定PopupWindow显示在屏幕的那个位置。...我们可以看到在我们的工具类中,有一段代码: builder.view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED...真正的样子,也就是view创建出来' preparePopup(p); //'findDropDownPosition方法确定好PopupWindow要显示的位置' final

    31410

    Android N上Popwindow显示位置不正确问题「建议收藏」

    Popwindow是Android应用开发过程中比较常用的一个组件,最近发现了在Android N(Android 7.0,7.1)上Popwindow的一个位置显示问题,当指定PopupWindow高度为...如图所示: mPopupWindow.showAsDropDown(mBtn); Android 6.0及以下系统上正常显示(在指定的控件的下发显示): Android N(7.0)以及 上显示不正常不论怎么设置总是顶到屏幕顶部...): 经过查找资料,发现这是Android N上Popwindow的一个Bug。...可以通过如下方法来解决: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // Android 7.x中,PopupWindow高度为match_parent...7.1中,PopupWindow高度为 match_parent 时,会占据整个屏幕 //故而需要在 Android 7.1上再做特殊处理

    1.7K20
    领券