【问题标题】:Should I use a PopupWindow or DialogFragment for accepting input?我应该使用 PopupWindow 还是 DialogFragment 来接受输入?
【发布时间】:2013-02-16 09:50:23
【问题描述】:

我正在制作一个带有 3 个 Spinner 和一个 EditText 的 Popup。在阅读了许多博客和文章后,我无法决定哪个是最佳选择,PopupWindowDialogFragment

标准是:

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

如果有更好的方法,我愿意改变观点。

非常感谢。

DialogFragment:

  • 优点:
  • 缺点:

弹出窗口:

  • 优点:
  • 缺点:

编辑:结论

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

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

【问题讨论】:

  • 哪些决定使您将其缩小到其中之一(您知道任何优点或缺点吗?)。另外,考虑张贴你想要的照片。这些变化将使这篇文章成为全明星帖子。
  • 谢谢菲尔,我会努力改进这个问题!

标签: android android-dialogfragment android-popupwindow


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    支持库可以给你一个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

    【讨论】:

      猜你喜欢
      • 2016-07-30
      • 2018-11-19
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 2013-12-31
      相关资源
      最近更新 更多