接上篇文章,实现底部弹出菜单,AlertDialog无法实现底部与左右对齐,一直不死心,想找到解决方法,现在测试一下
Window window = dialog.getWindow();
window.setBackgroundDrawableResource(R.color.bg_popwindow);
给AlertDialog的Window设置一个背景图,效果如下:

看底部的颜色可以看出来,AlertDialog的Window的确已经在底部了,左右也都对齐了,AlertDialog没有全部填充window。想着应该是样式的问题,就找源码,系统样式,也没弄清楚怎么回事,还是用DIalog吧
构造函数如下:
Dialog dialog = new Dialog(PopupWindowDemo.this, R.style.FullHeightDialog);
FullHeightDialog是我自定义的样式,这里说明一下为什么要用自定义的样式,如果不用的话,显示的Dialog会显示一个空的Title栏,这样会多出一块来,样子如下图:

为了不显示这个Title栏,只好自定义一个样式,代码如下:
<style name="FullHeightDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
这样,Dialog顶部的空Title栏就不显示了,效果如下:

这样,利用Dialog从底部弹出的菜单栏也就完成了,再加上自己想要的动画效果就可以了,至于为什么Alertdialog为什么不能紧靠底部的问题,还请大神不吝赐教。。
如果您需要的菜单不是非要紧靠底部或者两边,用Alertdialog也是很好的解决办法
本文探讨了在Android中如何使用Dialog实现底部弹出菜单,并解决了AlertDialog底部和左右对齐的问题。通过设置Dialog的Window背景和自定义样式,成功移除Title栏,实现了底部弹出的效果。对于不需要紧贴底部的菜单,AlertDialog也是一个可行的选择。
1318

被折叠的 条评论
为什么被折叠?



