3

我有一个 DialogFragment。点击此对话框片段中的按钮时,我需要在对话框片段中的特定编辑文本上方显示一个弹出窗口。为此,我使用以下方法找到编辑文本的绝对坐标

int[] coords = {0,0};
editText.getLocationOnScreen(coords);

并使用在所需位置显示弹出窗口

popup.showAtLocation(popupView, Gravity.NO_GRAVITY, coords[0] + edittext.getWidth(), coords[1]);

但是这样做会显示对话框片段后面的弹出窗口。有没有办法让对话框片段上方弹出?

4

2 回答 2

4

好吧,我发现了我的错误。popUp.showAtLocation 的第一个参数应该是 getView() 而不是 popUpView。

popup.showAtLocation(getView(), Gravity.NO_GRAVITY, coords[0] + edittext.getWidth(), coords[1]);

现在这会在 dialogFragment 上方绘制弹出窗口

于 2014-08-12T10:55:18.887 回答
1

在 DialogFragment 上显示您的弹出窗口,需要一些延迟

示例 - new Handler(). postDelayed
(() -> showPopup(anchorView), 1000); // 这里使用 1 秒延迟。

于 2019-08-20T07:56:43.020 回答