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

【Android】在任意位置弹出PopupWindow

PopupWindow 平时我们可能是这样用PopupWindow的: 创建一个布局,再创建一个类继承PopupWindow public class TestPopupWindow extends...left.gif 查了下showAsDropDown(),发现只能在指定控件的下面弹出,总感觉少了点什么~~ 有时候我想弹在View的上面、左边、右边?怎么解? ?...如果你的PopupWindow宽高不确定,这两个参数你也不知道该写多少。 什么!你的PopupWindow宽高都写死了?骚年,你还是太年轻了。...准备工作 弹框前,需要得到PopupWindow的大小(也就是PopupWindow中contentView的大小)。 由于contentView还未绘制,这时候的width、height都是0。...还未弹出时,宽高为0 contentView.measure(makeDropDownMeasureSpec(window.getWidth()), makeDropDownMeasureSpec

4.3K110
您找到你想要的搜索结果了吗?
是的
没有找到

Android从屏幕底部弹出popupWindow

Android从屏幕底部弹出popupWindow 先看一下效果,看看是不是你想要的效果,免得浪费大家的时间,有一点说明,由于我录制的 gif 是用的模拟器,所以没有屏幕变暗的效果和加速的弹起的效果,实际效果以真机测试为准...android:textSize="18sp" /> 2.代码部分 我此处用的是一个加速的平移动画,从屏幕底部弹出...,然后将屏幕的亮度变暗,让popupwindow获取焦点,就可以实现了popupwindow从手机屏幕底部弹出的效果,代码中注释已经写的很清楚了,直接看代码即可 2.1设置触发popupwindow的点击事件...(View view) { switch (view.getId()) { case R.id.rlIcon: // TODO 弹出...private TranslateAnimation animation; 2.3弹起popupWindow /** * 弹出popupWindow更改头像 */

3.4K30

ScrollView里面基于某个View弹出PopupWindowPopupWindow不会跟着View滚动?

遇到这样一个需求:根布局为ScrollView,内部有一个TextView,叫它A,需要在A正上方弹出一个PopupWindow。...初看其实很简单,根据A的位置和大小,算出PopupWindow的位置,调用showAtLocation方法即可实现在A正上方弹出。...); popupWindow.setFocusable(false); popupWindow.setBackgroundDrawable(new ColorDrawable...这里写图片描述 可以发现,我们的PopupWindow并没有跟随一起滚动,这是因为在调用showAtLocation的时候,PopupWindow的位置已经确定了,所以并不会跟着A的滚动而滚动。...我们这里只需要让PopupWindow始终在A的正上方,所以重点就是确定随着ScrollView的滚动PopupWindow的位置。

1.3K20

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

(contentView); 如果创建PopupWindow的时候没有指定高宽,那么showAsDropDown默认只会向下弹出显示,这种情况有个最明显的缺点就是:弹窗口可能被屏幕截断,显示不全,所以需要使用到另外一个方法...如下图所示,我们可以根据屏幕左上角的坐标A,屏幕高宽,点击View的左上角的坐标C,点击View的大小以及PopupWindow布局的大小计算出PopupWindow的显示位置B ?...contentView.getMeasuredHeight(); final int windowWidth = contentView.getMeasuredWidth(); // 判断需要向上弹出还是向下弹出显示...windowContentViewRoot是根布局View 上面的例子只是提供了一种计算方式,在实际开发中可以根据需求自己计算,比如anchorView在左边的情况,在中间的情况,可以根据实际需求写一个弹出位置能够自适应的...PopupWindow

2.8K110

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

(contentView); 如果创建PopupWindow的时候没有指定高宽,那么showAsDropDown默认只会向下弹出显示,这种情况有个最明显的缺点就是:弹窗口可能被屏幕截断,显示不全,所以需要使用到另外一个方法...如下图所示,我们可以根据屏幕左上角的坐标A,屏幕高宽,点击View的左上角的坐标C,点击View的大小以及PopupWindow布局的大小计算出PopupWindow的显示位置B ?...contentView.getMeasuredHeight(); final int windowWidth = contentView.getMeasuredWidth(); // 判断需要向上弹出还是向下弹出显示...windowContentViewRoot是根布局View 上面的例子只是提供了一种计算方式,在实际开发中可以根据需求自己计算,比如anchorView在左边的情况,在中间的情况,可以根据实际需求写一个弹出位置能够自适应的...PopupWindow

3.2K10

Android UI设计与开发之PopupWindow仿腾讯新闻底部弹出菜单

前一篇文章中有用到 PopupWindow 来实现弹窗的功能。简单介绍以下吧。 官方文档是这样解释的:这就是一个弹出窗口,可以用来显示一个任意视图。出现的弹出窗口是一个浮动容器的当前活动。...然后在主界面代码中实例 PopupWindow ,指定弹出的界面,在按钮点击事件中显示或隐藏弹窗就可以了,代码如下: package com.yanis.demo; import android.app.Activity...if (pop.isShowing()) { // 隐藏窗口,如果设置了点击窗口外消失,则不需要此方式隐藏 pop.dismiss(); } else { // 弹出窗口显示内容视图...(R.style.MenuAnimationFade); /** * 改变背景可拉的弹出窗口。...changePopupWindowState() { if (pop.isShowing()) { // 隐藏窗口,如果设置了点击窗口外消失,则不需要此方式隐藏 pop.dismiss(); } else { // 弹出窗口显示内容视图

1.2K51

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

分析: 1、点击右上角三个点的图标,在界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现的时候,详情界面便灰了,也说成透明度变化了 3、当任意选了一个按钮或者点击了该区域以外的部分...--------------------------------------- 下面通过一个Demo来实现这个需求~~ 效果图: 首先还是布局文件: 1、主界面: 我们只需要在界面的右上角放一个按钮来弹出...PopupWindow ,注意 父容器需要有一个id,因为我们需要它来给PopupWindow设置弹出的位置 <RelativeLayout xmlns:android="http://schemas.android.com...@Override public void onClick(View v) { switch (v.getId()) { //点击分享按钮,<em>弹出</em>...} }); break; } } } 注意点: 如果你在你自己的项目中使用了<em>弹出</em>

1.1K60

Android6.0源码分析之menu键弹出popupwindow菜单流程分析

例如上图,在按下菜单键后会弹出对应的菜单选项,准确来说,是在菜单键弹起后出现的一个popupwindow,那么从菜单键弹起到popupwindow创建所涉及到的历程是怎样的呢?...framework层已经把menu按键分发给了用户,那么接下里就是activity进行响应,所以从Activity开始看起,整体流程如下: 从按键弹起framework层分发到activity开始,到弹出...} return false; } 总结下来就是,该方法先对一些必要的条件做了一些判断,比如menu是否存在,menu菜单选项是否为空,menu的popup是否已经弹出...,或者正在弹出,然后在进行popup对象的实例化,并开启加载popup的线程。...mPopup; } mPostedOpenRunnable = null; } } 在加载线程中修改menu的状态模式,并且试着去弹出

1.6K60

Android开发实现popupWindow弹出窗口自定义布局与位置控制方法

本文实例讲述了Android开发实现popupWindow弹出窗口自定义布局与位置控制方法。分享给大家供大家参考,具体如下: 布局文件: 主布局文件:activity_main: <?...layout_height="wrap_content" android:layout_weight="1" android:text="確認"/ </LinearLayout </LinearLayout 弹出布局设置...android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.PopupWindow...final PopupWindow popup = new PopupWindow(root, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT...// popup.isShowing(); Toast.makeText(MainActivity.this, "hh", Toast.LENGTH_SHORT).show(); //控制pupup弹出位置在父布局的中间显示

2K41

Android沉浸式状态栏与DialogPopupWindow兼容

背景 在使用某APP的过程中发现,该APP对PopupWindow的沉浸式支持并不好,在使用PopupWindow的时候,状态栏会变成纯白色,看不到时间信号等等。如下图所示 ?...APP弹出菜单时候状态栏底色纯白 而正常的状态栏应该如下图所示 ? 正常情况下状态栏显示 问题追踪 看到这个之后觉得顶部看不到时间、信号神马的非常不舒服,于是上Google查了一下原因。...focusable (makes navigation ignore us adding the window) 设置Dialog没有焦点,使得状态栏忽略新添加的Window 这样就能可以实现状态栏在PopupWindow.../Dialog弹出的时候,也可以正常显示了,在自己做的Demo中也证实了这一点 解决办法 在PopupWindow/Dialog展示(show)之前,调用setFocusable(false),这样在弹出...PopupWindow的时候没有焦点,就不会影响沉浸式状态栏的显示了。

4.4K30

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

展示选项菜单的途径有三种: 1、按下菜单键; 2、在代码中手动打开选项菜单,即调用函数openOptionsMenu; 3、按下导航栏右侧溢出菜单按钮,溢出菜单参见《Android开发笔记(二十)顶部导航栏...展示上下文菜单的途径有两种: 1、在某个控件被长按时弹出。...在实际开发中,Android自带的菜单显得朴素不够灵活,一个是位置固定,如选项菜单固定从页面底部弹出,溢出菜单固定从页面右上角弹出,上下文菜单固定显示在页面中央;另一个是样式固定,无法设置菜单背景...PopupWindow的机制是实现一个弹出框,其内容可以是任意布局的View,其页面悬浮在当前Activity页面之上。...= null && popupWindow.isShowing()) { popupWindow.dismiss(); popupWindow = null

1.3K30
领券