Android-使用post时不显示PopupWindow
当我在没有post的情况下调用showAsDropDown(即直接输入代码)时,我看到弹出窗口-Android-使用post时不显示PopupWindow,android,popupwindow,Android,Popupwindow,当我在没有post的情况下调用showAsDropDown(即直接输入代码)时,我看到弹出窗口- PopupWindow w = new PopupWindow(v.getContext()); w.showAsDropDown(v); 但是,当我尝试使用v.post()(有延迟或无延迟)时,我看不到弹出窗口 v.post(new Runnable() { @Override public void run() {
PopupWindow w = new PopupWindow(v.getContext());
w.showAsDropDown(v);
但是,当我尝试使用v.post()
(有延迟或无延迟)时,我看不到弹出窗口
v.post(new Runnable() {
@Override
public void run() {
w.showAsDropDown(v);
}
});
是什么原因造成的?嗯,我觉得自己很愚蠢,但我已经找到了问题所在,我将把问题+解决方案留给子孙后代- 问题是我忘了在帖子中调用update:)
此代码有效。不确定是否需要更新。我猜你只需要设置弹出窗口的尺寸,而更新就做到了。请参阅:。PopupWindow的布局参数默认设置为0。这意味着它需要一个显式的大小。您应该给它一个大小,或者将其布局参数更改为wrap_content或匹配_parent:
pw.setWindowLayoutMode(LayoutParams.wrap_content,LayoutParams.wrap_content)代码>。这就是更新工作的原因。
v.post(new Runnable() {
@Override
public void run() {
w.showAsDropDown(v);
w.update(v, 0, 0, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
}
});