PopupWindowFragment的使用及项目地址

###PopupWindowFragment wiki###java


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

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

1.使用方法:github

/**生成一个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.过场动画:ide

固然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.状态保存:code

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

相关文章
相关标签/搜索