文档章节

PopupWindowFragment的使用及项目地址

-非墨-
 -非墨-
发布于 2016/11/04 23:23
字数 455
阅读 57
收藏 0

###PopupWindowFragment wiki###


GitHub 地址: github <br> 作者微信: -FeiMo-<br> Bug反馈地址: dingwei.chen1988@gmail.com 简介:

  • PopupWindowFragment是为了在Fragment模型中更好,更方便的使用PopupWindow而存在的通用组件。跟DialogFragment类似,也是将一个新的Window对象纳入Fragment的状态管理。但是由于DialogFragment的功能及接口的局限性,已经很难满足更加复杂的界面要求。因此,使用接口更加丰富的PopupWindow代替Dialog的方式应运而生。
  • 在PopupWindowFragment中,你除了可以轻松的指定Window切换时候的过场动画,还可以动态指定背景及布局外,在屏幕翻转的时候,PopupWindowFragment一样会记录翻转前的状态。

1.使用方法:

/**生成一个PopupWindowFragment
* @code david.demos.popupwindow.DemoPopupWindowFragment
*/
public class DemoPopupWindowFragment extends PopupWindowFragment {    
    @Override    
    protected View onCreateView(LayoutInflater inflater, Bundle savedInstanceState) {       
     return inflater.inflate(R.layout.demo_pop_window,null);   
    }
}

/**Activity中调用
* @code david.demos.popupwindow.Demos_PopupWindowFragment
*/
private PopupWindowFragment mPopupWindowFragment = new DemoPopupWindowFragment();
...
mPopupWindowFragment.show(getFragmentManager(),mPopTag);

调用PopupWindowFragment的方法就是如此简单。当然,这部分剪口很大一部分参考了DialogFragment的接口设计。调用上述方法后可以实现效果:

弹出一个PopupWindowFragment


2.过场动画:

当然PopupWindowFragment可以做的事情远不止此,PopupWindowFragment可以通过简单的request方法来定制你的过场动画:

/**Activity中调用
* @code david.demos.popupwindow.Demos_PopupWindowFragment
*/
private int[] mWindowAnims =  { 
       PopupWindowFragment.ANIM_ACTIVITY,        
       PopupWindowFragment.ANIM_TOAST,        
       PopupWindowFragment.ANIM_DIALOG,        
       PopupWindowFragment.ANIM_INPUTMETHOD
};
...
mPopupWindowFragment.requestPopupAnimationStyle(mWindowAnims[index]);
...

PopupWindowFragment将默认提供4个过场动画,分别是Activity动画,Toast动画,Dialog弹出动画,还有输入法动画,效果如下:

指定不同的过场动画

<br> >

3.状态保存:

PopupWindowFragment拥有Fragment的保存特质,可以在Activity切换的时候依旧保持自己的状态:

Activity重新生成后,PopupWindowFragment依旧能保持之前的状态和属性

4.定制Gravity:

//demo/Demos_PopupWindowFragment.java

private int[] mGravitys =  {Gravity.BOTTOM,Gravity.CENTER,Gravity.TOP};
...
mPopupWindowFragment.requestGravity(mGravitys[i]);
....

效果:

通过Gravity指定位置

PopupWindowFragment提供了丰富的API和接口供各位开发者使用,如果疑问和Bug,请发送到作者邮箱。thx

© 著作权归作者所有

-非墨-
粉丝 5
博文 10
码字总数 17834
作品 0
朝阳
程序员
私信 提问
11个优秀的Android开发开源项目

一、 一个类似微信的时光轴效果 项目地址 https://github.com/ljtyzhr/TimeLine 二、 安卓选择器类库,包括日期、时间、单项、双项选择器、城市地址选择器 项目地址 https://github.com/gzu...

codeGoogle
2017/12/03
0
0
thinkphp系统常量与自定义常量

thinkphp系统常量与自定义常量 时间 2014-03-03 13:41:14 CSDN博客 原文 http://blog.csdn.net/wuji_1/article/details/20367675 主题 ThinkPHP ----------------------------------------A......

thinkyoung
2015/08/27
0
0
thinkphp 常使用的系统常量

Action中使用的系统常量 THINK_PATH // ThinkPHP 系统目录 APP_PATH // 当前项目目录 APP_NAME // 当前项目名称 MODULE_NAME //当前模块名称 ACTION_NAME // 当前操作名称 TMPL_PATH // 项目...

沉恋
2012/11/22
38
1
太惊艳了,这些画都是CSS的杰作!

今天给大家分享一些CSS绘画大师的作品,实在是太惊艳了,有的作品真的难以想象是CSS画出来的,希望大家能从这些作品里找到灵感,说不定哪天你也会成为CSS绘画大师! 贵妇油画 作者:Dina Sm...

07/02
0
0
2017 年 10 月:15 个有趣的 JS 和 CSS 库

在每个月,我们都会为大家分享一些最新、有趣的前端库,希望它们中的一些会对你的项目有所帮助。当然,如果你也发现了一些有趣、实用的库,框架或是工具,也欢迎留言与大家一同分享。 1.Curr...

IT程序狮
2017/11/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java发送html模板的高逼格邮件

最近做了一个监测k8s服务pod水平伸缩发送邮件的功能(当pod的cpu/内存达到指定阈值后会水平扩展出多个pod、或者指定时间内pod数应扩展到指定数量),一开始写了个格式很low的邮件,像下面这样...

码农实战
14分钟前
4
0
php-fpm配置文件详解/MariaDB密码重置、慢查询日志

来源:https://blog.csdn.net/Powerful_Fy php-fpm主配置文件路径:/usr/local/php-fpm/etc/php-fpm.conf #位于安装php安装目录下的etc/目录中,该文件中最后一行将配置文件指向:include=/...

asnfuy
18分钟前
3
0
川普给埃尔多安和内堪尼亚胡的信

任性 https://twitter.com/netanyahu/status/1186647558401253377 https://edition.cnn.com/2019/10/16/politics/trump-erdogan-letter/index.htm...

Iridium
40分钟前
12
0
golang-mysql-原生

db.go package mainimport ("database/sql""time"_ "github.com/go-sql-driver/mysql")var (db *sql.DBdsn = "root:123456@tcp(127.0.0.1:3306)/test?charset=u......

李琼涛
今天
5
0
编程作业20191021092341

1编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时 间。使用#define或const创建一个表示60的符号常量或const变量。通过while 循环让用户重复输入值,直到用户输入小于或等于0的值...

1李嘉焘1
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部