常见分享自下而上的弹出窗实现

先来剖析一下PopupWindow的一些东西
1、它是一个Window,与Dialog最大的不同是它不依赖于Activity,可以在一个应用的任何地方弹出来 ,但是它需要本应用的一个Context。
2、在重写它时间,必须要调用super(Context context)这个构造方法,否则在低版本一定会出现异常
3、简单布局的PopWindow弹出不会出现占满全屏的现象,因为它在写XML时间它的宽高已经计算好了,但是如果它是各个布局和ListView,GridView混合来做的话,那就一定会有问题,因为它事先无法计算出来,只有等到绘制结束之后才能绘制出来,这是一个很大的问题。
解决方案有两个:
     1>如果这个listview,gridview比较固定可以写成固定布局
     2>根据主流分辨率,作判断,它的高度用屏幕的比例来算出。
4、主流应用如何应用PopupWindow。
     1>、像微博那样,宽度和高度是一个固定的值,可以去滑动,很显然 它用的是一个listview,它不需要在代码中考虑它的真实高度和宽度。
     2>、像微信或者其实应用那样,弹出的PopupWindow特别整洁,高度,宽度非常一致,那么它没有用到listView和GridView这种事件不知道高度和宽度的组件 ,它是直接写死在里面的,事件都知道了宽高,所以不会出现我遇见的那个问题。
     所以,要么是可滑动,要么是写死。
     所以,我的项目里面的方法是比较奇葩,它是GridView,但是我把它设置为了全屏,背景是一个半透明的,可以看到后面,屏幕下面显示具体内容,要显示的那一部分用Wrap_content。




PopupWindow的应用之一是分享弹出。
1、用一个popupwindow,但是在实现背后透明窗口的时间,会出现半透明的的背景是和分享这一块一起弹出来的,看着会比较难受。

2、用一个Dialog,可以直接用它那种渐变的背景,但是,当用从下而上弹出的时间,又做为一个整体弹出来,它的最好的用法是淡入淡出,用Dialog的默认动画,
给Dialog加动画,其实是给它所属的Window加动画,会是一个整体的动画。

3、用两个PopupWindow实现,最好的方案,一个负责从下而上弹出,一个负责渐变。











http://download.csdn.net/detail/dacainiao007/7214651


http://download.csdn.net/detail/dacainiao007/7227163

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值