何时使用Android PopupWindow和Dialog

31

我不清楚何时使用PopupWindow和Dialog。 希望能得到帮助。谢谢。


2
提供一些关于你想要实现的背景信息会有助于回答你的问题。目前来看,这个问题似乎太宽泛了,无法回答(我假设你已经阅读了两种方法的文档)。 - Austyn Mahoney
3个回答

14

它们都使用addView()方法以及各种windowManager方法。在这方面,两者是相似的。

对话框似乎具有更多内置的交互功能,例如处理程序和按钮已包含在基类中,而PopupWindows则具有更多内置的方法来定位它们在屏幕上的位置。

我认为它们每个都可以像另一个一样完成相同的工作,但选择两者之间将是程序员方便性的问题,关于如何使用对象。虽然我不是计算机科学博士,但根据我在各自的类定义中看到的内容,我认为它们之间在处理时间上没有显着的差异。

我的建议:如果您想更好地控制View出现在显示器上的位置,请使用PopupWindow。如果您想在View之间添加更多控制和反馈,则使用Dialog。如果您像我一样想要完全掌控一切,我建议使用PopupWindow,因为它具有较少的用户明显默认方法需要覆盖。


4

我认为,你应该使用对话框(Dialog)来进行简单的用户交互(是/否)。 我通常使用对话框(Dialog)来进行简单的用户交互,而使用WindowPopup来展示稍微复杂一点的视图。 一个WindowPopup的例子是AutoCompleteTextView

希望这能帮到你。


我在对话框和弹出窗口方面遇到了一些问题!当我想向用户提供一些信息时,我应该选择什么? - Emad Aghaei

1
我认为当需要在继续下一步之前采取行动时,应该使用对话框。它永远不会覆盖屏幕并始终居中对齐作为模态事件。 另一方面,PopupWindow具有灵活性,可以根据位置设置将信息调整到屏幕上的任何位置,如粘性页脚、粘性标题、在左侧、右侧、中心等等。 对于显示信息,它是一个很好的选择,因为还可以进行动画处理。 简而言之,如果需要进行最少的操作来显示信息,请使用PopupWindow,如果需要进行受控操作以继续下一步,请使用Dialog。

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