android原生控件有spinnner作为弹出菜单。但是项目中需要更灵活的样式,包括可以点击按钮弹出活着点击listview等弹出下拉菜单。
通过ListPopupWindow,实现对话框样式的菜单的对话框背景样式菜单。
要实现该效果首先要将对话框背景按点9图片配置好拉伸区域和文字显示区域。
然后关键就时如何判断当前的弹出菜单是在菜单持有者的上方还时下方。通过源码分析。发现实际上,ListPopupWindow时通过PopupWindow实现的,其中PopupWindow的背景实际上是会通过设置的背景如果为StateListDrawable时,去获取在上方还时下方的背景图片。但是无论是PopupWindow,还是StateL