Android - 创建应用程序级片段
Android - Create Application level fragment
对于我当前的项目,我将使用这个 SlidingUpPanel library。
向上滑动的面板将包含一个包含 application/global 关卡信息的片段。该面板将出现在我的应用程序中的每个 activity 中。这与 Google 播放音乐的工作方式非常相似。
我的问题是,在整个应用程序中保留向上滑动面板片段的最佳方法是什么?我认为自己会以两种方式解决这个问题......
- 将片段存储在应用程序中 class 并在每个 activity 的开头加载它(不知何故,甚至不确定这是否可能)。
- 存储将在应用程序中显示的数据class并加载片段的新实例,传入持久数据。
这两种方式中哪一种最好? 1.甚至可能吗?这些方法是否有编码地雷?
存储片段以在整个应用程序生命周期中持续存在是非常不正统的,主要是因为片段 class 应该能够遵循它的正常生命周期事件(在本例中,主要是 onPause 和 onResume)而不是被卡在应用程序的某处 class.
存储数据并在每次显示片段时加载它绝对是常见的做法。如果你想启用某种缓存或单例模式来访问数据,它很可能与片段可以访问但不是片段中的成员的另一个对象一起使用。
有一个 good video from google about leaking views,它简要介绍了做一些类似于您在项目符号 #1 中提议的事情的陷阱。
我认为您的应用程序的结构看起来应该是一个 activity,其中包含该栏,然后主要内容是一个 Fragment
,您可以替换并使用 [=11] =] on 为了保持后退按钮的使用。否则,您将使用解决方案 2 进行大量重复代码(这意味着在出现错误等情况下需要进行大量重复工作,不太易于维护),或者使用解决方案 1 会泄漏视图。
对于我当前的项目,我将使用这个 SlidingUpPanel library。
向上滑动的面板将包含一个包含 application/global 关卡信息的片段。该面板将出现在我的应用程序中的每个 activity 中。这与 Google 播放音乐的工作方式非常相似。
我的问题是,在整个应用程序中保留向上滑动面板片段的最佳方法是什么?我认为自己会以两种方式解决这个问题......
- 将片段存储在应用程序中 class 并在每个 activity 的开头加载它(不知何故,甚至不确定这是否可能)。
- 存储将在应用程序中显示的数据class并加载片段的新实例,传入持久数据。
这两种方式中哪一种最好? 1.甚至可能吗?这些方法是否有编码地雷?
存储片段以在整个应用程序生命周期中持续存在是非常不正统的,主要是因为片段 class 应该能够遵循它的正常生命周期事件(在本例中,主要是 onPause 和 onResume)而不是被卡在应用程序的某处 class.
存储数据并在每次显示片段时加载它绝对是常见的做法。如果你想启用某种缓存或单例模式来访问数据,它很可能与片段可以访问但不是片段中的成员的另一个对象一起使用。
有一个 good video from google about leaking views,它简要介绍了做一些类似于您在项目符号 #1 中提议的事情的陷阱。
我认为您的应用程序的结构看起来应该是一个 activity,其中包含该栏,然后主要内容是一个 Fragment
,您可以替换并使用 [=11] =] on 为了保持后退按钮的使用。否则,您将使用解决方案 2 进行大量重复代码(这意味着在出现错误等情况下需要进行大量重复工作,不太易于维护),或者使用解决方案 1 会泄漏视图。