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

Android PopupWindow -如何在具有屏幕按钮的设备上获得相同的底部边距

Android PopupWindow是Android开发中常用的一个弹出窗口组件,它可以在屏幕上方或下方显示一个浮动的视图,用于显示额外的信息或操作选项。

要在具有屏幕按钮的设备上获得相同的底部边距,可以通过以下步骤实现:

  1. 首先,创建一个PopupWindow对象,并设置其内容视图。
代码语言:java
复制
PopupWindow popupWindow = new PopupWindow(context);
View contentView = LayoutInflater.from(context).inflate(R.layout.popup_layout, null);
popupWindow.setContentView(contentView);
  1. 接下来,设置PopupWindow的宽度和高度。
代码语言:java
复制
popupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
  1. 然后,设置PopupWindow的背景。
代码语言:java
复制
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
  1. 接着,设置PopupWindow的动画效果。
代码语言:java
复制
popupWindow.setAnimationStyle(R.style.PopupAnimation);
  1. 最后,显示PopupWindow。
代码语言:java
复制
View anchorView = findViewById(R.id.anchor_view);
popupWindow.showAsDropDown(anchorView, 0, 0);

在这个例子中,我们使用了showAsDropDown方法将PopupWindow显示在指定的锚点视图下方,并且设置了底部边距为0。

需要注意的是,具有屏幕按钮的设备可能会有不同的屏幕尺寸和分辨率,因此在不同设备上可能需要进行适配。可以根据具体需求调整PopupWindow的宽度、高度和位置。

推荐的腾讯云相关产品:无

希望以上内容能够帮助到您!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

处理视觉冲突 | 手势导航 (二)

Android 10 带来了新手势导航模式,允许用户通过手势动作,而不是导航按钮来进行导航: 从屏幕左/右边缘向中间滑动,相当于后退按钮 (Back)。...在 Android 10 ,当前唯一强制区域是屏幕底部主屏手势区域,系统保留这个区域就可以让用户在任何时候都可以退出当前应用: △ 底部 60dp 即为强制系统手势衬区 稳定显示衬区 方法:...处理衬区冲突 希望您现在对不同类型 insets 区域有了更深了解,下面我们来看看您需要如何在应用中实际使用它们。...// Return the insets so that they keep going down the view hierarchy insets } 在这里,我们仅将系统窗口区域底部值赋给了控件底边...在 Android 10 中新增 insets 方面,compat 版本方法在所有 API 级别的设备都能得到正确结果。

2.8K30

干货一:通过自定义PopupWindow实现QQ菜单选项功能

概述 我们在使用手机QQ时,点击菜单键,会弹出本案例说演示效果图似的菜单选项。 ? 实现方式有很多种,在这里我们来演示下如何通过自定义PopupWindow方式一步一步实现如上效果。...关于PopupWindow基本知识点请查看 PopupWindow 分析 UI部分 shape使用-corners solid等 中间使用View分割 背景处理 …… 功能点 响应点击事件–通过接口回调方式...点击外部,PopupWindow可消失 …… 实现 自定义PopupWindow UI编写 位于父布局底部 边框有一定距离,根布局使用layout_margin即可 ListView(四个圆角+...白色背景) + View分割(透明色) +底部文字(圆角+白色背景) 蓝色字体 居中显示(ListView中 在Item设置即可,底部文字设置gravity即可) ……....Override public boolean onTouch(View v, MotionEvent event) { // getTop View自身到其父布局顶距离

79330
  • 【Flutter 专题】94 初识 MediaQuery

    当我们同时为手机和平板适配编写 app 针对不同屏幕尺寸进行 UI 布局或当用户偏好设置较大字号或是想要最大限度等减少动画等;此时就需要 MediaQuery 来帮我们获取所用设备信息以及用户设置偏好信息...5. platformBrightness platformBrightness 为当前设备亮度模式;注意调整屏幕亮度并不会改变该模式,与当前系统支持黑暗模式和明亮模式相关; print('亮度模式...13. viewInsets viewInsets 为键盘弹出时等遮挡屏幕,其中 viewInsets.bottom 为键盘高度; print('键盘遮挡内边 -> ${MediaQuery.of...14. systemGestureInsets systemGestureInsets 为手势 Android Q 之后添加向左滑动关闭页面等; print('系统手势 -> ${MediaQuery.of...15. viewPadding viewPadding 和尚理解为视图内边,为屏幕被刘海儿屏或异形屏中被系统遮挡部分,从 MediaQuery 边界边缘计算;此值是保持不变;例如,屏幕底部软件键盘可能会覆盖并占用需要底部填充相同区域

    99531

    PopupWindow使用方法详解

    学习了Android PopupWindow使用技巧 和【Android UI设计与开发】7.底部菜单栏(四)PopupWindow 实现显示仿腾讯新闻底部弹出菜单,然后自己进行了一下研究,写一个总结...设置非PopupWindow区域是否可触摸 // 1.若设置PopupWindow获得焦点和非PopupWindow区域可触摸,但实际PopupWindow区域控件并不能响应点击事件等等 // 2....若设置PopupWindow不可获得焦点,则不管非PopupWindow区域被设置能否触摸,实际PopupWindow区域控件都能响应点击事件等等 // 3.若设置PopupWindow不可获得焦点...,非PopupWindow区域被设置能触摸,当点击非PopupWindow区域时能隐藏PopupWindow,而点击返回键并不能隐藏窗口, // 此时通过按钮只能控制窗口弹出,并不能控制消失,消失只能通过点击其他非...,不管非PopupWindow区域被设置能否触摸,也会在点击屏幕PopupWindow区域和点击返回键时,使PopupWindow隐藏 // 2.相反,如果设置为不可获得焦点,在点击屏幕PopupWindow

    69331

    仿uc下部弹出菜单

    ,组长叫我和他考虑界面实现可行性,我提出这种思路给他,他不采纳,觉得太烦了,他就自己弄,因为我们项目是车载导航一个主控程序菜单,屏幕分辨率固定,所以用5张图片就ok了,所以到最后这个都不了了之了...发现没,UC菜单箭头绝对是对准所点击按钮,有人可能觉得用不同图片就行了,对于一种机型可以这么做,android机型千千万,你要怎么配型,这是个很大工作量,吃力不讨好啊。...,也就是getLeft方法得到数值,parentWidth就是按钮本身宽度了,screenwidth 是屏幕宽度,popupWindowHeight为popupWindow高度,具体你们看图和源码...,根据父控件来获得                 popupWindowHeight = popupWindow.getHeight();//得到popupWindow高度,在popupWindow...popupWindow.update(); } mapDrawable是一个HashMap对象,用来保存生成背景,多次调用肯定会带来内存和时间大量损耗,所以一个按钮生成一个背景后保存下来下次再用是非常好方法

    1.5K80

    iPhone X 适配指南 (官方翻译版)

    4.7寸 iPhone iPhone X 对于具有自定义布局应用,支持iPhone X也应该比较容易,特别是如果您应用使用自动布局并遵守安全区域和布局指南。...在iPhone X预览您应用程序。您可以使用Simulator(Xcode附带)来预览应用程序,并检查剪辑和其他布局问题。一些功能,宽彩色图像,最好在实际设备预览。 提供全屏体验。...一般来说,内容应该是居中对称,所以它在任何方向看起来都很棒,不会被角落或设备传感器外壳夹住,或被访问主屏幕指示器遮挡。为获得最佳效果,请使用标准系统提供界面元素和自动布局构建您界面。...所有应用程序都应遵循UIKit定义安全区域和布局,这些区域可以根据设备和上下文进行适当填充。安全区域还可以防止内容覆盖状态栏,导航栏,工具栏和标签栏。 注意状态栏高度。...请勿尝试隐藏设备圆角,传感器外壳或通过在屏幕顶部和底部放置黑色条来访问主屏幕指示器。不要使用像括号,边框,形状或教学文字等视觉装饰,也要特别注意这些区域。 允许自动隐藏指示灯,以便轻松访问主屏幕

    2.5K50

    【最新】iPhone X 交互设计官方指南

    屏幕尺寸 iPhone X 屏幕宽度与 iPhone6,iPhone 7 和 iPhone8 4.7 英寸屏幕相同。...大多数使用系统提供标准 UI 元素(导航栏、表格和集合)应用程序能够自适应设备新外形。背景材料可以延伸到屏幕边缘,而且 UI 元件也能够被适当地插入和定位。 ? ?...如果你应用程序具有自定义布局,那么支持 iPhone X 也应该比较容易。如果你应用程序使用 Auto Layout 并且遵守安全区域和布局指南的话。...所有的应用程序都应遵循 UIKit 中定义安全区域和布局,这些区域可以根据设备和上下文进行适当填充。安全区域还能够防止内容把状态栏、导航栏、工具栏和标签栏覆盖掉。 注意状态栏高度。...不要隐藏设备圆角和传感器外壳,也不要通过在屏幕顶部和底部放置黑色条方式来突出主屏幕指示器。不要使用类似括号、边框、形状或文字之类视觉装饰来引起人们对这些区域注意。

    1.9K20

    折叠屏应用设计规范,了解一下?

    △ Fortnightly 遵循指南对内容进行分隔和分组 网格系统 现在,许多应用将屏幕视作一个大画布或单栏,以水平和垂直方式按相互关系绘制元素,有些应用也会在一侧整体留出。...△ 使用栏式网格将屏幕划分为三个主要区域 在本例中,三个主要区域通过重排来保持相同信息层次结构,但以更加人性化方式在小屏幕显示。...例如,在大屏设备,您可使用 Navigation rail (左侧边栏导航条) 代替 底部导航 (Bottom navigation),两者功能相同,视觉表现方式也类似,但 Navigation rail...平板电脑,部分屏幕区域难以用大拇指触及,用户也很难腾出整只手来自由操控屏幕。用户轻易就能触及屏幕底部角落,但可能无法触及屏幕最顶端,尤其是在竖屏模式下。...这意味着如果您使用 Navigation rail 这类组件,将导航按钮居中或固定在屏幕底部,这会更便于用户操作。 △ 大屏设备用户操作热区 同时,我们还需要考虑铰链位置对交互影响。

    4.5K20

    如何处理手势冲突 | 手势导航连载 (三)

    (包括在后退和返回主屏按钮区域滑动) 不少游戏通常会在此处回答 "是",因为: 游戏屏幕控件往往非常靠近屏幕左/右边缘,或靠近屏幕底部。...系统手势区域如下图所示: △ 从蓝色区域向屏幕中间滑动相当于 "返回" 按钮;从红色区域向上滑动则是返回主屏,注意红色区域即为系统强制手势交互区域 简单解法 这个问题最简单解决方案是,添加一些内/外边...而且这样做还使得我们不再需要额外插入太多无用。...但请注意,我们依然需要在播放控件底部插入一个内边,其值等于系统栏高度,这样可以使歌曲名称等文本不会被系统导航条 (即屏幕底部那条 "横线") 遮盖。...我们认为,开发者需要尽量确保用户使用一致操作来与系统进行交互,如从边缘向内滑动进行返回。注意是在整个设备,而不仅仅是在一个应用中保持一致性。

    4.9K30

    未来布局之星——ConstraintLayout

    :约束 ConstraintLayout是Android Studio 2.2中具有亮点新功能之一,相比于RelativeLayout、LinearLayout等传统布局,它打破了开发者使用XML...添加约束演示 可以看到,按钮控件有四个方向约束,如下图所示,按钮、下、左、右边上各有一个小圆圈,鼠标可拖动小圆圈到ConstraintLayout,与其添加约束。 ?...Button控件约束 按钮下边圆圈拖至ConstraintLayout底部,则按钮移动至底部;再将按钮上边圆圈拖动至ConstraintLayout顶部,垂直方向上有两个约束按钮控件就会实现垂直居中...如下图所示,在调整按钮宽度后,将两个按钮左右两添加约束,然后将下方按钮上边与上方按钮下边添加约束,拖动下方按钮,可设置两个按钮之间外边。 ?...修改控件外边 在控件尺寸调整,ConstraintLayout提供了三种模式,在属性面板中点击下图红色框框区域实现模式切换。 ?

    1.9K20

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

    --保持CPU 运转,屏幕和键盘灯有可能是关闭,用于文件上传和下载 --> <uses-permission android:name="android.permission.WAKE_LOCK" /...(true); //点击空白处时候让PopupWindow消失 popupWindow.setBackgroundDrawable(new ColorDrawable(...有了这个类,你就可以在你应用程序中添加用户账户功能。BmobUser是BmobObject一个子类,它继承了BmobObject所有的方法,具有BmobObject相同功能。...8-3、需要Demo源码童鞋,可以在底部公众号回复:"BmobDemo"即可获取。 小编整理了一份Android电子书籍,需要童鞋关注公众号回复:"e_books" 即可获取哦!...[在这里插入图片描述] 欢迎关注公众号(longxuanzhigu),获得更多福利、精彩内容哦! [在这里插入图片描述]

    3.3K30

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

    分析: 1、点击右上角三个点图标,在界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现时候,详情界面便灰了,也说成透明度变化了 3、当任意选了一个按钮或者点击了该区域以外部分...,该区域消失,灰色界面变回亮白色,并执行点击按钮对应操作 显然,这个功能我们需要用PopupWindow实现更好~ -----------------------------------------...出现时候 屏幕透明度 ,设为0.5 即半透明 灰色效果 backgroundAlpha(0.5f); // 设置popupWindow...取消点击事件,即popupWindow消失后,屏幕透明度,全透明,就回复原状态 feedSelectPopupWindow.setOnDismissListener(...()方法,那么要注意PopupWindow和Dialog一样是需要依赖于Activity存在 所以不要在onCreate()方法中使用 .showAtLocation()方法 ,因为这个时候Activity

    1.1K60

    Android项目实战(二十七):数据交互(信息编辑)填写总结

    需求包括:  1、顶部两个按钮:“取消”、“确定”按钮 2、标题 3、滚动wheelview选择器 代码实现: 1、选择一个WheelView控件,这个github很多,我这里选用是  https...取消点击事件,即popupWindow消失后,屏幕透明度,全透明,就回复原状态 popup.setOnDismissListener(new PopupWindow.OnDismissListener...中任意按钮,记得关闭此popupWindow, popup.dismiss(); } }; 6、界面半透明效果方法   /** * 设置添加屏幕背景透明度...对象 // 设置popupWindow显示位置 // 此时设在界面底部并且水平居中 popup.showAtLocation(feedback_list_ly...,设为0.5 即半透明 灰色效果 backgroundAlpha(0.5f); // 设置popupWindow取消点击事件,即popupWindow消失后,屏幕透明度

    3.5K70

    FAQ | 为大屏幕设备构建应用常见问题解答

    答: 首先是思维转变,过去为直板手机开发应用,如今要切换到为形状各异且尺寸不一设备开发应用,开发者需要转变思维来考虑界面如何在各种尺寸设备运行,因为大屏设备市场重要性已经毋庸置疑了。...答: 从设计角度来讲,我们建议将底部导航组件更换为 Navigation Rail,它具有底部导航组件类似的功能,内含多个主要 导航目的地。...对于基于 View 应用,您可以使用资源限定布局,通过底部导航——底部应用栏 (App Bar) 或底部导航菜单 (Navigation Menu)——形成窄小布局,也可以使用 Navigation...当设备处于半折叠形态时候,设备还可能处于两种折叠状态,一种是桌面模式 (水平折叠),类似把半折叠形态手机放在桌子;另一种是图书模式 (垂直折叠),类似把半折叠形态手机拿在手上,像在看书一样。...提及折叠形态,需要注意组件过渡,将会在更大设备更大屏使用各种组件,尤其是在桌面模式,需要特别注意界面,例如,在该模式下,关键操作或大多数操作是在底部屏幕完成,而大多数内容组件实际上会放在另一个屏幕

    3.5K10

    最新iOS设计规范七|10大视觉规范(Visual Design)

    其他设备(例如iPhone SE和iPad Air)具有矩形显示屏。 如果您应用在特定设备运行,请确保该应用在该设备所有屏幕尺寸运行。...该系统包括预定义布局指南,可轻松在内容周围应用标准并限制文本宽度,以实现最佳可读性。您还可以定义自定义布局指南。 ? ? 遵守UIKit定义安全区域和布局。...如果你APP支持横向模式,不管设备是左旋转还是右旋转,都要确保你布局看起来很棒。 ? 在较大设备显示文本时,应留有可读性页。这些使文本行足够短,以确保舒适阅读体验。...由于“Home”指示器仍在屏幕居中,因此它相对于应用程序界面的位置可能会发生变化。 插入全角按钮。延伸到屏幕边缘按钮可能看起来不像按钮。遵守全角按钮两侧标准UIKit。...屏幕底部出现一个全角按钮时,如果该按钮具有圆角并与安全区域底部对齐,则该按钮最佳,这也确保了它与“Home”指示器不冲突。 ? 对于关键显示功能,不要掩盖或特殊强调。

    8.1K30

    细细品读!深入浅出,官方文档看ConstraintLayout

    、End 纵向:Top、Bottom、Baseline(文本底部基准线) 通常是一条向另一条添加约束,就像下面按钮B要定位在按钮A右边一样: ?...app:layout_constraintLeft_toRightOf="@+id/buttonA" /> 这样系统就会知道按钮B左侧被约束在按钮A右侧,这里约束可以理解为对齐。 ?...Fig. 3 - 相对定位外边 这里外边相信大家都理解,这里就不赘述了,罗列外边属性如下: * android:layout_marginStart * android:layout_marginEnd...当相同方向上(横向或纵向),控件两同时向ConstraintLayout添加约束,情况就会像图 4所示这样。 ?...在此基础,访问Guideline类了解详情,附上Guideline类代码案例供读者们了解: <android.support.constraint.ConstraintLayout

    96430

    按钮与交互-使用按钮触发操作

    在资产目录中,将应用程序图标从assets文件夹拖放到选定插槽中。 主要故事板 我们在屏幕放置一些按钮。使用模板,主故事板附带一个ARSCNView,我们无法在其放置按钮。...这是按钮约束: 按钮 约束 左 PlaceScreen 左:46点 / 底部:28点 中 加号按钮 水平中心 / 底部:28点 右 减号按钮 右:46点 / 底部:28点 放置按钮后放回ARSCNView...确保约束视图每一侧而不是安全区域。取消选中Constrain到。在布局中,将ARSCNView放在View下方,否则按钮将不会显示。 ?...对minusButtonTapped重复相同步骤,但不是将模型缩放2x,而是将其更改为0.5。...在我们例子中,这意味着我们正在改变iPhone屏幕。调用节点并访问其漫反射材质。然后,转到art.scnassets并找到不同屏幕。对我们来说,它是AR-Screen.png。

    4.6K20

    简单了解下无障碍设计模式

    它们向外延伸,并超过元素视觉边界。例如,图标可能显示为 24 x 24 dp,但是加上图标周围,则构成了 48 x 48 dp 触摸目标。 触摸目标应该至少为 48 x 48 dp。...视觉反馈(标签、颜色和图标)和触摸反馈向用户显示了可用 UI。 导航应该具有清晰任务流程,和最少步骤。在频繁使用任务,应该实现聚焦控制、或控制键盘和读取焦点功能。...标记聊天图标 帮助文档 任何具有特殊无障碍功能功能都应包含在帮助文档中。确保帮助文档相关性、可访问性和可发现性。例如,查看本指南,了解如何在 Google Drive 中使用屏幕阅读器。...屏幕阅读器会大声朗读屏幕所有的文本,包括可见和不可见替代文本。 无障碍文本包括可见文本(包括 UI 元素中标签、按钮文字、链接和表单)和不可见描述(没有文本标签按钮替代文字)。...这意味着按钮应该设置成按钮、复选框应该设置成复选框,以便将控件类型和状态正确传达给用户。如果一个元素是从一个原生 UI 元素扩展或继承,他会获得父元素角色。

    4.8K40

    细细品读!深入浅出,官方文档看ConstraintLayout

    、Start、End 纵向:Top、Bottom、Baseline(文本底部基准线) 通常是一条向另一条添加约束,就像下面按钮B要定位在按钮A右边一样: ?...这种情况代码实现是这样: ? 这样系统就会知道按钮B左侧被约束在按钮A右侧,这里约束可以理解为对齐。 ?...当相同方向上(横向或纵向),控件两同时向ConstraintLayout添加约束,情况就会像图 4所示这样。 ? 而代码书写是这样: ?...下面这段代码就是让左边占30%,右边占70%(默认两各占50%),这样左边就会短一些,如图5所示,此时代码是这样: ? 通过设置倾向,可以非常便捷地实现屏幕适配。...在此基础,访问Guideline类了解详情,附上Guideline类代码案例供读者们了解: 相关方法 ? ? ?

    97740
    领券