我应该使用PopupWindow或DialogFragment接受输入吗?

时间:2013-03-01 19:34:47

标签: android android-dialogfragment android-popupwindow

我正在使用3个Spinners和一个EditText进行 Popup 。在阅读了许多博客和文章后,我无法确定哪个是最佳选择, PopupWindow DialogFragment

标准是:

  1. 兼容性与不同的Android版本
  2. 效果
  3. 如果有更好的方法,我愿意改变观点。

    非常感谢。

    DialogFragment:

    • 优点:
    • 缺点:

    PopupWindow:

    • 优点:
    • 缺点:

    编辑:结论

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

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

2 个答案:

答案 0 :(得分:31)

支持库可以为您提供与旧版本的android兼容的DialogFragment。继续使用片段对话框,因为你要问的是非常特别的(3个微调器和一个edittext。只需右键单击你的项目并按“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

答案 1 :(得分:1)

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

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