【发布时间】:2023-03-12 21:51:01
【问题描述】:
我正在尝试获得一个完全自定义的 Dialog 或 PopupWindow,没有任何默认的 Android UI 控件(标题、背景、按钮等)。
这可能吗?我花了几个小时寻找这个,但没有运气......看起来这应该很容易实现,但我找不到。
最好是通过从 XML 扩展视图来实现,但在这一点上,任何可以正常工作的东西都会很好。
谢谢。
【问题讨论】:
标签: android dialog skinning popupwindow
我正在尝试获得一个完全自定义的 Dialog 或 PopupWindow,没有任何默认的 Android UI 控件(标题、背景、按钮等)。
这可能吗?我花了几个小时寻找这个,但没有运气......看起来这应该很容易实现,但我找不到。
最好是通过从 XML 扩展视图来实现,但在这一点上,任何可以正常工作的东西都会很好。
谢谢。
【问题讨论】:
标签: android dialog skinning popupwindow
我采取的步骤:
setContentView(x, y),x 是您的 R.layout,y 是 R.style.popupStyle(见下文)。您会遇到一些错误,只需从官方 Android 的 styles.xml 和 Themes.xml 文件中复制更多内容即可解决这些错误。这是我的 styles.xml 文件的内容:http://pastebin.com/RRR15YYS
这只是给你一个白色的弹出窗口,没有边框,什么都没有。开始定制。 :)
感谢 mbaird 让我走上正轨。
[edit] 我需要再次查找我自己的答案,我花了至少十分钟搜索官方的 android 样式/主题文件,所以在这里,以供将来参考: styles.xml 和 themes.xml。
【讨论】:
w.setGravity(Gravity.CENTER);。这会阻止我的保证金吗?因为我只是无法将它定位在我想要的位置。我添加边距的那一刻,事情就搞砸了。
听起来您正在尝试真正自定义AlertDialog。对于您想要做的事情,您最好创建自己的扩展 Dialog 的类,类似于通过编写扩展 Activity 的类来创建活动的方式。
您可以通过在自定义 Dialog 类的 onCreate() 方法中调用 setContentView() 来设置布局 XML,就像在 Activity 中一样。
过去,我在自定义 AlertDialogs 的数量方面遇到了限制,我刚刚实现了自己的 Dialog 类以获得所需的自定义级别。
【讨论】: