弹出窗口去除边框

5

我想创建一个覆盖层,如果通知到达应用程序底部,则显示通知。

我计划使用PopupWindow来实现,因为它很容易集成到每个活动中,而无需将具有覆盖层的RelativeLayout作为屏幕上的最后一个元素。

我的测试代码如下:

 popUp = new PopupWindow(this);
 popUp.setContentView(LayoutInflater.from(this).inflate(R.layout.testwindow, null));
 popUp.showAtLocation(layout, Gravity.BOTTOM, 0, 0);
 popUp.update(0, 0, width, height);

其中宽度和高度是我的设备大小。但问题是弹出窗口并没有覆盖整个屏幕,会显示一些边框和内边距,这在我的布局中是不存在的。

我已经尝试将布局文件中的边框设置为0像素,并在测量屏幕宽度时添加偏移量和额外宽度。但左侧的内边距无法去除。

我该怎么做才能将叠加层拉伸到整个窗口的宽度?现在看起来像这样:not working overlay

1个回答

4
多年过去了,但我仍然为那些可能遇到类似问题的人提供解决方案。
1. 你可以添加以下内容,但BitmapDrawable已被弃用,现在需要传入一个上下文。
popUp.setBackgroundDrawable(new BitmapDrawable()); 2. 我更喜欢这个解决方案,因为我传入null可以避免潜在的泄漏和清理。
popUp.setBackgroundDrawable(null);

2
真是太疯狂了:这个问题不仅比我建造的产品还要长寿,而且比公司还要长寿 - 但它仍然吸引着答案。你会得到一个赞,也许如果我测试你的解决方案并接受它,我会再次回来。干杯,继续保持良好的工作! - schlingel
@schlingel,你测试了我的解决方案吗?如果测试成功,请接受我的答案。 - King Of The Jungle
抱歉,不知道它是否有效。 - schlingel
1
我将反对空选项。这会在某些Android版本(如5.1.1)中带来触摸问题,其中TouchInterceptor根本不被调用。 - RedDeath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接