Android-使用post时不显示PopupWindow

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() {

当我在没有post的情况下调用showAsDropDown(即直接输入代码)时,我看到弹出窗口-

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);
            }
        });