【问题标题】:Android - PopupWindow not showing when using postAndroid - 使用帖子时弹出窗口不显示
【发布时间】:2012-12-04 03:42:31
【问题描述】:

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

PopupWindow w = new PopupWindow(v.getContext());
w.showAsDropDown(v);

但是,当我尝试使用 v.post()(无论是否延迟)时,我都看不到弹出窗口。

v.post(new Runnable() {
            @Override
            public void run() {
                w.showAsDropDown(v);
            }
        });

这可能是什么原因造成的?

【问题讨论】:

    标签: android popupwindow


    【解决方案1】:

    好吧,我觉得很愚蠢,但我已经找到了问题,并将问题+解决方案留给后代 -

    问题是我忘记在帖子中调用更新 :)

    v.post(new Runnable() {
                @Override
                public void run() {
                    w.showAsDropDown(v);
                    w.update(v, 0, 0, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                }
            });
    

    此代码有效。

    【讨论】:

    • 不确定是否需要更新。我怀疑您只需要设置弹出窗口的尺寸,更新就做到了。请参阅:stackoverflow.com/questions/5504755/popupview-not-showing-up
    • PopupWindow 的布局参数默认设置为 0。这意味着它需要一个明确的大小。您应该给它一个大小或将其布局参数更改为 wrap_content 或 match_parent:pw.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);。这就是更新起作用的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    相关资源
    最近更新 更多