【问题标题】:Full-screen Fragment or Activity? [closed]全屏 Fragment 还是 Activity? [关闭]
【发布时间】:2014-09-28 04:56:53
【问题描述】:

我正在构建一个 android 应用程序,其中有一个显示新屏幕的按钮。我应该使用FragmentFrameLayout,还是创建一个新的Activity

我想复制 FaceBook 应用程序的行为,用户点击一个按钮,然后显示一个新屏幕,用户将在其中输入他/她想要写的内容

【问题讨论】:

标签: android


【解决方案1】:

您可以使用 Activity 方法或 Fragment 方法。该决定应基于您想要在下一个屏幕中执行的操作。多年来,我发现使用片段适用于大多数场景。我更喜欢片段,因为它的灵活性和可重用性(也不需要在清单中添加活动标签,这是我最喜欢的好处之一)。

【讨论】:

  • +1 因为我遇到“NoActivityFoundException,你确定你在 AndroidManifest.xml 中指定了 Activity 吗?”所有该死的时间。即使您知道需要添加它,我个人也倾向于忘记它。
  • @Zhuinden 这是 android 抛出的最烦人的异常之一。每创建三个新 Activity 中就有 1 个浪费了 30 秒,却忘记添加到清单中。
  • @IllegalArgument 谢谢,我会尽可能尝试使用 Fragments。
【解决方案2】:

片段是可重复使用的组件。您可以在 Activity 内的 Fragment 之间进行交换。

如果您要进入新屏幕,最好使用 Activity。

【讨论】:

    【解决方案3】:

    正如我之前在Why using Fragments? 中发布的那样,由于每次方向更改都会破坏和重建活动,我宁愿将我的东西保存在片段中以保持稳定性,并仅在必要时使用活动。

    所以就个人而言,我会推荐这个设置作为开始:https://codereview.stackexchange.com/questions/57543/why-does-the-new-adt-create-a-static-inner-class-fragment-by-default

    【讨论】:

    • 在配置更改时,片段也会重新创建
    【解决方案4】:

    您还没有真正提供很多关于您将使用它的信息。如果它是一个全新的屏幕,我会使用一个活动。片段、布局和视图等实际上是活动可以在其中拥有的东西。如果您只想拥有一个弹出式视图,那么您可以在活动中使用不同的视图。

    【讨论】:

    • 我想复制 FaceBook 应用程序的行为,用户点击一个按钮,然后显示一个新屏幕,用户将在其中输入他/她想要写的内容
    • 老实说,我只是使用 DialogFragment。
    • 如果您只想显示一种弹出式输入框,然后将内容复制回原始活动,然后使用片段,请参阅上面的@illegal Argument 的 cmets
    • @Zhuinden 谢谢,我认为DialogFragment正是我​​需要的
    • 我个人为 DialogFragment 做了stackoverflow.com/a/25056160/2413303,如果你需要的话,如何让它填充父级也是值得注意的,stackoverflow.com/questions/23990726/…
    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多