PopupWindow弹出式菜单

1.PopupWindow与AlertDialog的区别

最关键的区别是AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManager参数来改变位置)。而PopupWindow是可以指定显示位置的,随便哪个位置都可以,更加灵活。

// 构建泡泡窗口:
ViewGroup pop = (ViewGroup)getLayoutInflater().inflate(R.layout.popupwindows_pro,null);
PopupWindow popupWindow = new PopupWindow(pop, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
//获取焦点
popupWindow.setFocusable(true);
//设置空白背景,这样点空白部分就会关闭
popupWindow.setBackgroundDrawable(new BitmapDrawable());
//设置进出动画:
popupWindow.setAnimationStyle(R.style.anim);
//在styles.xml中定义动画样式
<style name="anim">
 <item name="android:windowEnterAnimation">@anim/popwindow_in</item>
 <item name="android:windowExitAnimation">@anim/popwindow_out</item>
</style>
//根据父元素位置显示,x,y是偏移距离
View pView = (View) button.getParent();
popupWindow.showAtLocation(pView, Gravity.CENTER, x, y);
//在view组件下方显示,不够会显示在上方
popupWindow.showAsDropDown(view, x, y);
//关闭泡泡窗口:
popupWindow.dismiss();
//设置键盘事件可控制按back键关闭
pop.setOnKeyListener();
 版权声明:本文为AIDE教程网原创文章,转载请附上原文出处链接和本声明
本文链接: https://www.aidemx.cn/150.html

梦雪

专注于AIDE教程分享

    留下你的评论

    *评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

    相关推荐