Android 弹出窗口退出屏幕';s底边界
这是一个简化的代码,用于在长时间单击GridView项目时显示弹出窗口 当最右边的项目出现时,弹出窗口被调整到屏幕内 但当项目靠近屏幕底部时,弹出窗口被裁剪(部分在屏幕外)。 怎么把这个修好Android 弹出窗口退出屏幕';s底边界,android,android-popupwindow,Android,Android Popupwindow,这是一个简化的代码,用于在长时间单击GridView项目时显示弹出窗口 当最右边的项目出现时,弹出窗口被调整到屏幕内 但当项目靠近屏幕底部时,弹出窗口被裁剪(部分在屏幕外)。 怎么把这个修好 PopupWindow mDropDownMenu= new PopupWindow(list, WRAP_CONTENT, WRAP_CONTENT); mDropDownMenu.showAsDropDown(aView); aView是GridView项 文档中提到了showAsDropDown(
PopupWindow mDropDownMenu= new PopupWindow(list, WRAP_CONTENT, WRAP_CONTENT);
mDropDownMenu.showAsDropDown(aView);
aView是GridView项
文档中提到了showAsDropDown(视图锚定)
但它总是固定在左下角,而不是左上角。找到了解决方案。您必须测量视图并在
PopupWindow
上设置测量
...
private fun showPopupWindow() {
val popupView = layoutInflater.inflate(R.layout.standard_popup_window, null)
popupView.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
PopupWindow(popupView, popupView.measuredWidth, popupView.measuredHeight).apply {
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
isTouchable = true
isFocusable = true
overlapAnchor = true
width = popupView.measuredWidth
height = popupView.measuredHeight
contentView = popupView
showAsDropDown(fragment_person_details__description)
}
...
事实证明,我必须设置下拉菜单的高度来避免这个问题
List<DropDownListItem> items;
dropDown.setHeight( toPixels( 30 * items.size() ) );
列表项;
下拉.setHeight(toPixels(30*items.size());
请提供一个屏幕截图以便更好地理解。我也有同样的问题。这里有一篇老文章,但没有给出有效的解决方案。我还尝试在API 22和25上使用PopupWindowCompat。没有区别。问题仍然存在。如果显式设置高度和宽度,它会起作用:PopupWindow(popupView,100100)。应用{setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))isTouchable=true isFocusable=true showAsDropDown(片段\人员\详细信息\描述)}可能重复感谢Bohsen,但这是Android代码吗?几乎所有的代码都没有定义,包括R.layout.standard_popup_window.setOverlappanchor(布尔值)需要API 23,我的目标是API 16+,这是使用Android kotlin扩展的Android kotlin代码。抛锚吧,没关系。应该在没有它的情况下工作。R.layout.standard_popup_窗口正是我想要充气到弹出窗口中的布局window@Jack有一个关于这个的PopupWindowCompat课程。
List<DropDownListItem> items;
dropDown.setHeight( toPixels( 30 * items.size() ) );