android中的抽屉活动以及加载数据的位置?

时间:2016-09-23 18:00:53

标签: android android-fragments android-lifecycle

我最近刚接触Android开发和片段的概念。在ios中,我能够使用SWRevealController创建drawer menu体验,这使得每个页面都拥有viewcontroller - 大致相当于activity }。这些单独的viewcontrollers非常明确地在何处加载数据,并且在其生命周期中非常自我​​管理。

现在在Android中,drawer activity将菜单的每个页面都设为fragment - 所有页面都属于同一个activity。这给我留下了一些选择:

  1. 有一个知道如何加载每个可能页面的所有数据的大型活动。这可能是最容易做到的,但最难维护。
  2. 让每个片段知道如何加载/显示自己的数据。这似乎是理想的,但如果在onViewCreated中完成,则会重新加载/复制数据。此外,即使以异步方式完成数据加载,它也会使抽屉活动的初始加载速度非常慢。
  3. 对于每个需要进行自己的API调用的抽屉视图,什么是易于维护的方法?

1 个答案:

答案 0 :(得分:0)

在Android中,与iOS相比,你有很多生命周期方法。

您还可以为每个视图创建活动,并扩展具有抽屉控件的BaseActivity。所以这样你就可以在基类中控制抽屉,你也可以在其他活动中获得抽屉。

其次,如果你使用Fragment方式,你可以使用setUserVisibilityHint()或onViewCreated()方法来调用api,或者你也可以使用onResume()方法进行一点点检查。有关详情,请查看this