android - 如何设计具有圆角和阴影的弹出窗口 window

android - How to design a pop-up window having rounded corners and shadows

在将此标记为 重复 之前,我想说我已经经历了 SO posts 就像 this, this and this。但是我还没有找到适合我的方案。

我正在尝试使用 PopupWindow() 创建弹出窗口 window。我想使用圆角和后退阴影(如 FloatingActionButton 下的阴影)来设计这个 window。

我遇到过一些解决方案,比如定义一个带圆角的形状,然后将其用作 background。但是这个解决方案存在这个问题。

This doesn't work. as you've set, it's the background, so the content overrides the rounded corners, and if you have content that draws on the corners, you won't see them being rounded. - (posted here)

我认为这不是一个理想的解决方案。还有另一种创建自定义布局的解决方案 class,如第二个 link 中提供的那样。但是使用它我遇到了一些问题,比如我在这个布局中的 EditText 在打字时没有更新它里面的文本。一旦我关闭键盘,它就会被更新。此外,该解决方案还存在一些性能问题。

在 android 中设计弹出窗口 window 没有真正有用的 SO posts。我想知道是否有标准方法可以有效地做到这一点,甚至可能。

对于阴影效果,我看到了thispost,并尝试了它提供的不同解决方案。但他们在不同设备上给我的结果截然不同。我也想知道是否有可能的标准有效的解决方案。

请帮忙。 谢谢。

像这样创建一个 9 补丁背景:

内容填充不会让它散布在角落之外。

要弹出圆角,请使用与当前 activity 的基色相匹配的背景色定义父布局。然后定义一个所有参数都与父布局相同的子布局 layout.Then 使用定义圆角形状属性的资源文件设置背景。