您的位置:首页 > 运维架构

PopupWindow实现类似美团下拉框

2015-12-11 00:23 751 查看
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());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: