关于在 android 中使用对话框的问题?
Questions about using Dialogs in android?
我开门见山。 Dialog 把我搞糊涂了。为什么?因为似乎有 5 种不同的方法来实例化它们、为它们提供自定义布局和使用它们。雪上加霜的是,关于它们的文档非常糟糕。所以我要 post 我在这里的主要问题,希望你们能为我解决一些困惑。
Question One:
what is the Real Difference between Dialog, and DialogFragment?
Question Two:
why is it better to use onCreateView, rather than onCreateDialog?
furthermore, Whats the difference?
Question Three:
why not just do *Dialog dialog = new Dialog();* everytime i need one,
rather than subclass DialogFragment constantly?
如果这个帖子看起来不太适合社区,我深表歉意,但请记住这些都是非常真实且没有答案的问题。在我读过的所有教程中,从 slidenerd-to-vogella-to-Stack 一切都解释了如何,但没有解释为什么,这同样重要,甚至更多。谢谢大家!
它们之间的区别在于,对话框只能显示自定义视图,但它本身无法让您以编程方式与其视图/小部件进行交互在对话框的运行时(即显示时)。 DialogFragment 扩展了 Fragment 并具有 Fragment 的所有功能和生命周期(或者在用作对话框时与它们非常相似)。
DialogFragment 也可以用作 'normal' 片段,这意味着您可以使用 DialogFragment 在平板电脑上显示对话框或将其置于 activity(即全屏)内 phone.
如果 DialogFragment 也被用作 Fragment,它必须通过 onCreateView return 一个 View,因此您无论如何都必须实现 onCreateView。如果您只实现 onCreateView 而不是 onCreateView and onCreateDialog,您可能可以避免代码重复。但是我从来没有听过有人说是'better to use onCreateView, rather than onCreateDialog'。
您不必为大多数对话框子class DialogFragment。显示一个简单的对话框,例如。向用户询问显示一点信息的问题,您可以实例化一个新的 Dialog() 或使用 DialogBuilder。仅当我想驻留在它自己的 class 中并利用 DialogFragments 生命周期的对话框中发生某些逻辑时,我才使用 DialogFragments。
我开门见山。 Dialog 把我搞糊涂了。为什么?因为似乎有 5 种不同的方法来实例化它们、为它们提供自定义布局和使用它们。雪上加霜的是,关于它们的文档非常糟糕。所以我要 post 我在这里的主要问题,希望你们能为我解决一些困惑。
Question One:
what is the Real Difference between Dialog, and DialogFragment?
Question Two:
why is it better to use onCreateView, rather than onCreateDialog?
furthermore, Whats the difference?
Question Three:
why not just do *Dialog dialog = new Dialog();* everytime i need one,
rather than subclass DialogFragment constantly?
如果这个帖子看起来不太适合社区,我深表歉意,但请记住这些都是非常真实且没有答案的问题。在我读过的所有教程中,从 slidenerd-to-vogella-to-Stack 一切都解释了如何,但没有解释为什么,这同样重要,甚至更多。谢谢大家!
它们之间的区别在于,对话框只能显示自定义视图,但它本身无法让您以编程方式与其视图/小部件进行交互在对话框的运行时(即显示时)。 DialogFragment 扩展了 Fragment 并具有 Fragment 的所有功能和生命周期(或者在用作对话框时与它们非常相似)。 DialogFragment 也可以用作 'normal' 片段,这意味着您可以使用 DialogFragment 在平板电脑上显示对话框或将其置于 activity(即全屏)内 phone.
如果 DialogFragment 也被用作 Fragment,它必须通过 onCreateView return 一个 View,因此您无论如何都必须实现 onCreateView。如果您只实现 onCreateView 而不是 onCreateView and onCreateDialog,您可能可以避免代码重复。但是我从来没有听过有人说是'better to use onCreateView, rather than onCreateDialog'。
您不必为大多数对话框子class DialogFragment。显示一个简单的对话框,例如。向用户询问显示一点信息的问题,您可以实例化一个新的 Dialog() 或使用 DialogBuilder。仅当我想驻留在它自己的 class 中并利用 DialogFragments 生命周期的对话框中发生某些逻辑时,我才使用 DialogFragments。