PopupWindow实现类似美团下拉框

PopupWindow官方文档对该控件的描述是:“一个弹出窗口控件,可以用来显示任意视图(View),而且会浮动在当前 活动(activity)的顶部”。这个对于我们想要实现在一个activity中弹出类似dilog的一个变得很简单。而且可以进行自定义。

使用场景:

1、弹出复制粘贴的那个功能

2、点击下来箭头,弹出下拉框,里面可以供选择项

3、从底部弹出,带有动画的,类似菜单的功能

4、点击按钮,在按钮的附近显示弹窗

这里大概讲下做类似美团,点击下拉箭头时,弹出下拉框的选项菜单:这里基本的弹窗对大家实现是没问题,但有一点就是背景先变暗,再弹窗。对于这个问题你可能想到,就是在显示popupwindow时,先窗体背景变暗,然后在弹出popupwindow。这样的想法没错,但是你会发现,屏幕会闪动很厉害,达不到效果。

那么就得想其他的方案,这里是我实现的方案,参考了其他的demo,就是在activity的布局中添加一个全屏的view,带背景色的,先做隐藏处理。在点击popupwindow的时候,先显示view,这个view有个动画,由亮变暗,当popupwindow消失的时候,在消失的监听事件中,将view去除掉,这个时候view有个由暗变亮的动画。这样就能实现类似美团的下拉框效果。

注意:如果你想要popupwindow点击区域外或back键能够消失,那么就需要给布局添加背景色( popupWindow.setBackgroundDrawable(new BitmapDrawable());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值