19

我正在做一个带有 3 个 Spinners 和一个 EditText的弹出窗口。在阅读了许多博客和文章后,我无法决定哪个是最佳选择,PopupWindowDialogFragment

标准是:

  1. 与不同Android版本的兼容性
  2. 表现

如果有更好的方法可以做到这一点,我愿意改变观点。

非常感谢你。

对话片段:

  • 优点:
  • 缺点:

弹出窗口:

  • 优点:
  • 缺点:

编辑:结论

DialogFragment允许您使用更复杂的功能。另一个重要的事情是它对平板电脑更友好,因为它允许用户一次打开多个片段。片段是一种更动态的解决方案,它们是较新 Android 版本的标准。

PopupWindow更简单,对用户的简单问题非常有帮助。

4

2 回答 2

31

支持库可以为您提供DialogFragment与旧版本的 android 兼容的库。继续使用片段对话框,因为您要问的内容非常具体(3 个微调器和一个编辑文本。只需右键单击您的项目并按“Android 工具”->“添加支持库”确保使用对话框时进口

import android.support.v4.app.DialogFragment;

否则,您最终将在没有支持的情况下使用该对话框:P。对话框片段和使用您认为合适的视图(甚至是您自己制作的布局)的能力将更加灵活,而无需付出太多努力。

对话片段

优点:

  • 能够添加任何视图
  • 易于编辑
  • 只需修改布局即可横向或纵向适应平板电脑或手机
  • 可以专门开设一个全新的课程,以按照您的方式进行修改

缺点:

  • 占用更多内存,您的视图越复杂
  • 更难编码

弹出窗口:

优点:

  • 更简单
  • 更容易编码
  • 它更标准,因此用户更难混淆

缺点:

  • 更简单,这意味着对它的控制更少
  • 仅限于几个模板

这些只是我的想法和经验,但你应该阅读文档

http://developer.android.com/reference/android/widget/PopupWindow.html

http://developer.android.com/reference/android/app/DialogFragment.html

于 2013-03-01T19:41:42.980 回答
1

如果您需要在窗口中使用 EditText 并希望您的用户能够长按并粘贴(编辑文本的正常行为),那么不要使用 popupwindow,我发现它很难,所以:

popupwindow 上的一个非常大的缺点是,长按编辑文本不会带来默认的上下文菜单(复制/粘贴/全选,...)。在某些设备中也有一些报告,这实际上会导致应用程序崩溃。看到这个 https://code.google.com/p/android/issues/detail?id=62508

于 2016-11-27T18:12:54.533 回答