【移动应用开发技术】Android PopupWindow使用方法小结_第1页
【移动应用开发技术】Android PopupWindow使用方法小结_第2页
【移动应用开发技术】Android PopupWindow使用方法小结_第3页
【移动应用开发技术】Android PopupWindow使用方法小结_第4页
【移动应用开发技术】Android PopupWindow使用方法小结_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】AndroidPopupWindow使用方法小结

前几天要用到PopupWindow,一时竟想不起来怎么用,赶紧上网查了查,自己写了个demo,并在此记录一下PopupWindow的用法。使用场景PopupWindow,顾名思义,就是弹窗,在很多场景下都可以见到它。例如ActionBar/Toolbar的选项弹窗,一组选项的容器,或者列表等集合的窗口等等。基本用法使用PopupWindow很简单,可以总结为三个步骤:其中,第二步是可选的(不过基本上都要进行第二步的设置)。下面是一个简单的例子:每个方法的作用都写在注解里了,相信大家都能看懂。不过这里要注意这两行:只有同时设置PopupWindow的背景和可以响应外部点击事件,它才能“真正”响应外部点击事件。也就是说,当你点击PopupWindow的外部或者按下“Back”键时,PopupWindow才会消失。使用showAsDropDown方法显示PopupWindow通常情况下,调用showAsDropDown方法后PopupWindow将会在锚点的左下方显示(dropdown)。但是,有时想让PopupWindow在锚点的上方显示,或者在锚点的中间位置显示,此时就需要用到showAsDropDown方法的xoff和yoff参数了。这里我们的目的不仅包括上面提到的两种情况(锚点上方或锚点中部),而是囊括了水平和垂直方向各5种显示方式:水平方向:

ALIGN_LEFT:在锚点内部的左边;

ALIGN_RIGHT:在锚点内部的右边;

CENTER_HORI:在锚点水平中部;

TO_RIGHT:在锚点外部的右边;

TO_LEFT:在锚点外部的左边。

垂直方向:

ALIGN_ABOVE:在锚点内部的上方;

ALIGN_BOTTOM:在锚点内部的下方;

CENTER_VERT:在锚点垂直中部;

TO_BOTTOM:在锚点外部的下方;

TO_ABOVE:在锚点外部的上方。

下面来看张图:我们先定义一个类对PopupWindow进行简单的封装:这里我们要实现的就是“showBashOfAnchor”方法,其中有一个“LayoutGravity”类型的参数,这就是控制PopupWindow相对锚点位置的对象。下面来定义“LayoutGravity”:这里的主要方法就是“getOffset”,它会根据水平和垂直方向的gravity决定PopupWindow相对锚点的位置。使用“LayoutGravity”时,可以通过“setHoriGravity”和“setVertGravity”方法设置水平和垂直方向的gravity,或者新建一个“LayoutGravity”对象。下面是一个demo:使用setAnimationStyle方法添加动画上面我们提到了为PopupWindow设置背景和注册事件监听器,现在我们再来为PopupWindow添加动画。这里的动画是指PopupWindow出现和消失时的动画。默认是直接弹出和消失,这样难免让用户有一种突兀的感觉;如果PopupWindow能够“滑入”屏幕和“滑出”屏幕(或者其他方式),用户体验会更好。为PopupWindow添加动画可以调用`setAnimationStyle`方法,该方法只有一个参数,就是指定动画的样式,因此我们需要定义动画资源和样式资源。下面是一个“滑入滑出”动画:然后定义“滑动”动画样式:现在我们就可以为PopupWindow添加“滑动”动画了:我们来看下效果:PS:这里由于动画的时间太短(200ms),另外转GIF的时候可能截取的频率有点低,导致滑动效果不是很明显,建议自己运行demo查看现在PopupWindow的出现/消失已经不是那么突兀了。不过,当弹窗出现后,发现弹窗和背景不是很容易区分,如果此时弹窗的背景能“变暗”就好了。没问题,我们可以在弹窗出现后让背景变暗,并在弹窗消失后让背景还原:现在再来看下效果:现在PopupWindow就比较明显了。另外,我们还实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论