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

相關文章
相關標籤/搜索