实现底部弹出菜单

来源:互联网 发布:手机扫描身份证软件 编辑:程序博客网 时间:2024/04/19 11:49

想实现一个自底部弹出的菜单,菜单中有一个类似ListView的选择列表,一开始就想到了AlertDialog,因为以前做过这样的界面,直接在里面加多Items,想着给加个Animation效果就可以了,应该简单的很,结果比较悲剧,先是无法自定义Dialog的大小,后来才知道要先调用show()方法,再设置Dialog的属性,这个用法好蛋疼啊,大小总算是解决了。后来又发现无法使AlertDialog的底部紧靠在屏幕底部,总是有一段距离,并且距离左右的边框也有一定的距离,如图


window.setGravity(Gravity.BOTTOM);这行代码好像效果也不是那么明显

实在找不到解决办法,那就不用AlertDialog了,还是用Popupwindow吧,底部与左右无法对齐的问题解决了,通过自定义布局页面也实现了,可是无法实现item的点击,获取不到焦点,原来是这个问题,在构造函数中,加上这个,也就是后面设为true,即允许获得焦点

PopupWindow mPopupWindow = new PopupWindow(music_popunwindwow,(int) (mWidth*0.8), LayoutParams.WRAP_CONTENT, true);

获取不到焦点的问题解决了,可无法在点击其它位置使这个Window消失,并且点击返回键是返回前一个Activity,而不是使这个Window消失,后经百度,原来要加上这么一句

mPopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.appwidget_bg));

这一句跟上面那一句缺一不可,这样之前遇到的那两个问题都解决掉了

效果如下图


原创粉丝点击