Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 关于何时使用片段和活动的一些问题_Android_Android Studio - Fatal编程技术网

Android 关于何时使用片段和活动的一些问题

Android 关于何时使用片段和活动的一些问题,android,android-studio,Android,Android Studio,只是一个免责声明,我对Android非常陌生,正在慢慢地学习教程。大多数教程一开始根本不讨论片段,但是Android studio默认为您设置了一个片段 我已经阅读了过去的一些问题和与片段和活动相关的dev博客,它们帮助我了解了使用片段的优势 我仍然有点困惑,什么时候会在应用程序中使用新的活动,在我看来,一切都可以通过片段和单个活动来完成 假设一个应用程序有多个屏幕,那么您是将其实现为一个包含多个片段的活动,还是将多个包含一个片段的活动 这张图片对我来说很有意义,并且展示了碎片的威力,但是为什

只是一个免责声明,我对Android非常陌生,正在慢慢地学习教程。大多数教程一开始根本不讨论片段,但是Android studio默认为您设置了一个片段

我已经阅读了过去的一些问题和与片段和活动相关的dev博客,它们帮助我了解了使用片段的优势

我仍然有点困惑,什么时候会在应用程序中使用新的活动,在我看来,一切都可以通过片段和单个活动来完成

假设一个应用程序有多个屏幕,那么您是将其实现为一个包含多个片段的活动,还是将多个包含一个片段的活动

这张图片对我来说很有意义,并且展示了碎片的威力,但是为什么在手机示例中需要两个活动呢

另一个附加问题是,前进的每件事都应该在一个片段中完成吗


如果这些问题没有真正的意义,谢谢你,对不起。

正如你所说。在简单的应用程序中,您只能使用一个
活动
,只需替换片段即可。我在我的应用程序中做到了这一点,它工作得非常完美。如果你想遵循android的设计和架构模式,有时候你只需要开始新的
活动

  • 根据你关于你发布的图片的问题,你可以 仅使用一个
    活动
    和片段即可获得相同的效果
  • 是的,向前推进的一切都可以在一个片段中完成

  • 活动
    应该是相关
    片段集合
    的宿主。例如,您可能有如下内容:

    Base Activity extends FragmentActivity
    
    LoginActivity extends BaseActivity
        -- LoginFragment
        -- LoginErrorFragment
        -- LoginSignUpFragment
    
    SettingsActivity extends BaseActivity
        -- SettingsGeneralFragment
        -- SettingsAdvancedFragment
    

    如果您试图将所有逻辑移动到一个
    活动中
    ,它将很快变得无法维护。另一个好的做法是有一个基本的
    活动
    ,您的所有
    活动
    都会扩展它;因为如果您突然发现有一些功能需要提供给所有活动,您可以将其添加到基类中。

    以上所述在这两方面都是绝对正确的。我只想补充几点

  • 当考虑片段时,请记住它们是活动的一部分,与任何其他视图一样,可以动态添加、修改和替换。例如,在使用ActionBar和导航抽屉时,片段变得更加方便和灵活。类似的事情也适用于ViewPager等
  • 片段还以比传统活动方式更好的方式适应更大的屏幕尺寸。想象一下,用户当时的体验是,当所有动作及其执行的事件都位于同一屏幕上时,一个新屏幕将取代手机/平板电脑

  • 关于碎片,我喜欢的另一件事是,我们不必在清单中声明它们。:)大多数情况下,在编译器提示之前,我们会忘记对活动执行此操作。:)(至少是我)

    或者谢谢,这张海报和另一张海报的链接(我在搜索中错过了一些链接)有助于澄清一些事情。很抱歉,我要澄清一下你说的话,你是说有一个“主要活动”取代一个应用程序中的所有活动是一种很好的做法?因此,在您给出的示例中,在LoginActivity和SettingsActivity.Correct上面有“MainActivity”。我们有一个
    BaseActivity
    类,我们的所有其他活动都扩展了这个类。