隐藏片段是一种 android 设计模式?
Hidden fragments is an android design pattern?
我正在查看 Facebook Android SDK 示例,我遇到了这种奇怪的模式(在 Scrumptious 示例中):应用程序的所有(或几乎)屏幕都是片段,已加载在开始时进入应用程序但隐藏。
稍后(恢复、会话更新等)一次显示一个片段,而所有其他片段保持隐藏状态。
这样只有 1 个 activity 并且所有应用程序屏幕同时出现在 activity 上,只是隐藏而不是显示。
这是 Android 的某种设计模式吗?优点和缺点?
与 activity 一样,碎片也有自己的生命周期。
当它们附加到 activity 并且直到
取消附加。所以这是由 Android 引入的设计模式,也可以很好地使用而不是对屏幕使用不同的 activity。
导航抽屉模式,在开发者网站上作为示例给出,也使用相同的方法。 android 采用相同方法的示例还有很多。
我不会将其称为设计模式,但是是的 - 这很常见。
布局膨胀的主要问题是它可能需要很长时间。准备好屏幕可以减少切换屏幕所需的时间。它还消除了动画问题——主要的用户体验杀手。考虑到 Material 设计,这变得非常重要。
这种方法的明显问题是内存使用。 Facebook 将大量数据显示为列表,所以我猜他们清除了所有适配器,除了屏幕上可见的适配器。
A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own input events, and which you can add or remove while the activity is running (sort of like a "sub activity" that you can reuse in different activities).
一个 Fragment 应该总是一个 Activity 的一部分,你可以有 1 个 Activity 和很多 fragments 但是这对你的应用程序来说不是一个好的设计,如果你正在使用所有的 fragments繁重的逻辑必须在 Activity 中完成,片段应该只包含正确的逻辑来呈现和操作它们包含的数据。
总的来说,好好练习MVC。活动应该只是从模型中获取数据并将它们插入视图(片段),或者从视图(片段)中获取事件并告诉数据做某事。不要 运行 URL 控制器中的请求或其他原始数据获取,显然不要 运行 片段中的繁重逻辑。希望对你有帮助...
我正在查看 Facebook Android SDK 示例,我遇到了这种奇怪的模式(在 Scrumptious 示例中):应用程序的所有(或几乎)屏幕都是片段,已加载在开始时进入应用程序但隐藏。
稍后(恢复、会话更新等)一次显示一个片段,而所有其他片段保持隐藏状态。
这样只有 1 个 activity 并且所有应用程序屏幕同时出现在 activity 上,只是隐藏而不是显示。
这是 Android 的某种设计模式吗?优点和缺点?
与 activity 一样,碎片也有自己的生命周期。 当它们附加到 activity 并且直到 取消附加。所以这是由 Android 引入的设计模式,也可以很好地使用而不是对屏幕使用不同的 activity。 导航抽屉模式,在开发者网站上作为示例给出,也使用相同的方法。 android 采用相同方法的示例还有很多。
我不会将其称为设计模式,但是是的 - 这很常见。
布局膨胀的主要问题是它可能需要很长时间。准备好屏幕可以减少切换屏幕所需的时间。它还消除了动画问题——主要的用户体验杀手。考虑到 Material 设计,这变得非常重要。
这种方法的明显问题是内存使用。 Facebook 将大量数据显示为列表,所以我猜他们清除了所有适配器,除了屏幕上可见的适配器。
A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own input events, and which you can add or remove while the activity is running (sort of like a "sub activity" that you can reuse in different activities).
一个 Fragment 应该总是一个 Activity 的一部分,你可以有 1 个 Activity 和很多 fragments 但是这对你的应用程序来说不是一个好的设计,如果你正在使用所有的 fragments繁重的逻辑必须在 Activity 中完成,片段应该只包含正确的逻辑来呈现和操作它们包含的数据。
总的来说,好好练习MVC。活动应该只是从模型中获取数据并将它们插入视图(片段),或者从视图(片段)中获取事件并告诉数据做某事。不要 运行 URL 控制器中的请求或其他原始数据获取,显然不要 运行 片段中的繁重逻辑。希望对你有帮助...