首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【Android】在任意位置弹出PopupWindow

弹框可能会在各种位置出现,在指定View的上、下、左、右、左对齐、右对齐等......left.gif 查了下showAsDropDown(),发现只能在指定控件的下面弹出,总感觉少了点什么~~ 有时候我想弹在View的上面、左边、右边?怎么解? ?...各种位置的弹窗 下面就来利用xoff、yoff在你想要的任何位置弹框。 准备工作 弹框前,需要得到PopupWindow的大小(也就是PopupWindow中contentView的大小)。...window = new TestPopupWindow(this); View contentView = window.getContentView(); //需要先测量,PopupWindow还未弹出时...center-right.gif 画这些图比敲代码还累~~~ 基本上完成了所有位置的弹框。还有一些位置上面没提到,不过通过上面那些水平、竖直的偏移也能拼凑出来。

4.1K110

Android PopupWindow怎么合理控制弹出位置(showAtLocation)

设置好参数之后再show popupWindow.showAsDropDown(contentView); 如果创建PopupWindow的时候没有指定高宽,那么showAsDropDown默认只会向下弹出显示...,这种情况有个最明显的缺点就是:弹窗口可能被屏幕截断,显示不全,所以需要使用到另外一个方法showAtLocation,这个的坐标是相对于整个屏幕的,所以需要我们自己计算位置。...计算方法源码如下: /** * 计算出来的位置,y方向就在anchorView的上面和下面对齐显示,x方向就是与屏幕右边对齐显示 * 如果anchorView的位置有变化,就可以适当自己额外加入偏移来修正...contentView.getMeasuredHeight(); final int windowWidth = contentView.getMeasuredWidth(); // 判断需要向上弹出还是向下弹出显示...windowContentViewRoot是根布局View 上面的例子只是提供了一种计算方式,在实际开发中可以根据需求自己计算,比如anchorView在左边的情况,在中间的情况,可以根据实际需求写一个弹出位置能够自适应的

2.8K110

详解Android PopupWindow怎么合理控制弹出位置(showAtLocation)

设置好参数之后再show popupWindow.showAsDropDown(contentView); 如果创建PopupWindow的时候没有指定高宽,那么showAsDropDown默认只会向下弹出显示...,这种情况有个最明显的缺点就是:弹窗口可能被屏幕截断,显示不全,所以需要使用到另外一个方法showAtLocation,这个的坐标是相对于整个屏幕的,所以需要我们自己计算位置。...计算方法源码如下: /** * 计算出来的位置,y方向就在anchorView的上面和下面对齐显示,x方向就是与屏幕右边对齐显示 * 如果anchorView的位置有变化,就可以适当自己额外加入偏移来修正...contentView.getMeasuredHeight(); final int windowWidth = contentView.getMeasuredWidth(); // 判断需要向上弹出还是向下弹出显示...windowContentViewRoot是根布局View 上面的例子只是提供了一种计算方式,在实际开发中可以根据需求自己计算,比如anchorView在左边的情况,在中间的情况,可以根据实际需求写一个弹出位置能够自适应的

2.8K10

js中三种弹出

,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码。...今天小编就来简单介绍一下js中的三种弹出对话框,小编先单独对这几个方法进行详细讲解,接着,将这几个方法进行对比,好了,开始我们的js之旅吧`(*∩_∩*)′…… 第一种:alert()方法 alert...alert()是js的window对象的一个方法,调用时可以写成window.alert(),也可以写成alert(),功能都是产生一个带确认按钮的对话框,上面显示括号内的信息, 第二种:confirm...脚本标注 confirm( "上联:一但重泥拦子路;下联:两岸夫子笑颜回" ); //在页面上弹出确认对话框...单击“确认”或“取消”按钮都是关闭对话框,似乎没有什么区别,实际上,无论是单击“确认”或“取消”按钮都会返回一个布尔值,这样就 可以再幕后有一些js代码来发挥按钮的作用,请大家看下面的例子,体会使用confirm

9.4K50

js获取鼠标当前位置坐标

它指的是鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化。...他值的是鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化。 相对于屏幕来说的screenX/screenY。...鼠标在屏幕上的位置,从屏幕左上角开始(w3c标准) 相较于触发事件的offsetX/offsetY。...这是一个IE特有的属性,鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有boder,可能出现负值 相对于坐标系的layerX/layerY。...FF特有,鼠标相比较于当前坐标系的位置,即如果触发元素没有设置绝对定位或相对定位,以页面为参考点,如果有,将改变参考坐标系,从触发元素盒子模型的border区域的左上角为参考点也就是当触发元素设置了相对或者绝对定位后

14.5K20

WKWebView不显示JS的Alert,Confirm,TextInput弹框解决方法

然后刚刚才发现用了WKWebView之后不会弹窗提示了,查了一下知道原来WKWebView默认禁止了下面的跳转: 打开itunes.apple.com跳转到App Store, 拨打电话, 唤起邮箱等一系列操作 JS...的Alert,Confirm,TextInput弹框 解决方法: 首先实现WKUIDelegate代理方法 解决唤不起打电话和跳转系统应用的方法 - (void)webView:(WKWebView...WKNavigationActionPolicyCancel); return; } decisionHandler(WKNavigationActionPolicyAllow); } } 解决JS...的Alert,Confirm,TextInput不弹框的方法 #pragma mark - Alert弹窗 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage...]; [self presentViewController:alertController animated:YES completion:nil]; } #pragma mark - Confirm

6.7K30
领券