关于利用AlertDialog实现底部弹出菜单的位置问题

接上篇文章,实现底部弹出菜单,AlertDialog无法实现底部与左右对齐,一直不死心,想找到解决方法,现在测试一下

Window window = dialog.getWindow();

window.setBackgroundDrawableResource(R.color.bg_popwindow);

给AlertDialog的Window设置一个背景图,效果如下:

关于利用AlertDialog实现底部弹出菜单的位置问题_第1张图片

看底部的颜色可以看出来,AlertDialog的Window的确已经在底部了,左右也都对齐了,AlertDialog没有全部填充window。想着应该是样式的问题,就找源码,系统样式,也没弄清楚怎么回事,还是用DIalog吧

构造函数如下:

Dialog dialog = new Dialog(PopupWindowDemo.this, R.style.FullHeightDialog);

FullHeightDialog是我自定义的样式,这里说明一下为什么要用自定义的样式,如果不用的话,显示的Dialog会显示一个空的Title栏,这样会多出一块来,样子如下图:

关于利用AlertDialog实现底部弹出菜单的位置问题_第2张图片

为了不显示这个Title栏,只好自定义一个样式,代码如下:

<style name="FullHeightDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowNoTitle">true</item>
</style>

这样,Dialog顶部的空Title栏就不显示了,效果如下:

关于利用AlertDialog实现底部弹出菜单的位置问题_第3张图片

这样,利用Dialog从底部弹出的菜单栏也就完成了,再加上自己想要的动画效果就可以了,至于为什么Alertdialog为什么不能紧靠底部的问题,还请大神不吝赐教。。

如果您需要的菜单不是非要紧靠底部或者两边,用Alertdialog也是很好的解决办法

你可能感兴趣的:(关于利用AlertDialog实现底部弹出菜单的位置问题)