0

解决方案

感谢codeMagic答案中的线索,该问题的解决方案是使用setWidth()setHeight()方法 设置宽度和高度

问题

我正在尝试使用以下代码在 Android 中显示 PopupWindow,但它似乎不起作用

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        PopupWindow test = new PopupWindow();
        test.setContentView(inflater.inflate(R.layout.test, null, false));
        test.showAtLocation(findViewById(R.id.main_container), Gravity.CENTER, 0, 0);
    }
    ....
}

你能告诉我哪里出错了吗?

编辑:我希望弹出窗口显示的内容包含我在 R.id.test 中的布局,但是当我执行上面的代码时,什么也没有发生。没有错误或任何

EDIT2:在原始代码中添加了一些上下文

4

2 回答 2

1

我决定将 aPopupWindow用于我现在正在做的事情。我的是在一个ListView所以它可能有点不同,但我不得不改变一些东西才能看到它。以下是我建议您查看的几件事,因为我看不出您的代码有任何明显错误。

  1. 给你的View第一个充气并确保它不会返回null
  2. 使用不同的构造函数(我使用了- 用适合您正在处理的屏幕的东西 new PopupWindow(holder.textNotes, 500, 500, true); 替换holder.textNotes您的充气和尺寸。注意我使用了这个构造函数,所以我可以让它聚焦ViewEditText

3 .我给了我View的背景颜色,所以我可以确保它正在显示

在创建实例时可以使用几种不同的构造函数,您可以在 DocsPopupWindow中找到这些构造函数。我上面使用的那个允许你设置窗口的和。这可以防止需要调用,正如vidhu 在评论中指出的那样。heightwidthsetHeight()setWidth()

于 2013-07-08T18:59:48.867 回答
0

您应该调用方法更新 来显示您的弹出窗口

于 2013-07-08T19:24:05.337 回答