PopupView没有显示?

Set*_*son 10 android popupwindow

这是XML(只是一个webview):

<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/couponView" android:layout_height="100dp" android:layout_width="100dp" />
Run Code Online (Sandbox Code Playgroud)

和代码:

final View cView = getLayoutInflater().inflate(R.layout.couponlayout, null);
PopupWindow pw = new PopupWindow(cView);
pw.showAtLocation(findViewById(R.id.mainLayout), Gravity.CENTER, 100, 100);
pw.update();
Run Code Online (Sandbox Code Playgroud)

这是在button.onClick()方法中.当我单击按钮时,应该发生的其他事情(按钮改变颜色,文本等),但PopupWindow不会显示.我一直在梳理网络,但找不到任何修复.我究竟做错了什么?

编辑:没人知道发生了什么?我觉得这是一个常见的问题.

kim*_*kim 27

PopupWindow.setWindowLayoutMode(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
Run Code Online (Sandbox Code Playgroud)

注意:不推荐使用setWindowLayoutMode.使用setHeight和setWidth.

  • 第二个想法,如果你使用这种方法,popupwindows的getWidth()和getHeight()方法返回0.您可以从弹出窗口中的视图中获取宽度和高度,并将其设置为弹出窗口的尺寸以模拟wrap_content.像这样:popupWindow.setContentView(myView); popupWindow.setHeight(myView.getHeight()); popupWindow.setWidth(myView.getWidth()); (2认同)

小智 11

由于尺寸未初始化,PopupWindow的宽度和高度可能为0,这可以解释为什么你看不到任何东西.您可以使用setHeight和设置高度和宽度setWidth,或者使用构造函数进行设置PopupWindow(View contentView, int width, int height).

查看Android 参考以获取更多信息.