Android:在片段之间跳转的正确方法

sle*_*ica 19 android design-patterns android-fragments

这是一个设计问题,而不是技术问题.

一般情况:我希望片段中的UI事件进行活动范围的更改.

具体案例:我有两个片段,托管在同一个活动中.当用户单击其中一个片段中的按钮时,我希望它被另一个片段替换.

不想,但是,我的碎片摸我的活动.我可能想稍后改变行为(也许,在更大的屏幕中,显示两个片段而不是替换第一个),我不希望我的片段代码具有该逻辑.

我所做的是Listener在我的片段中实现一个类,它将事件报告给Activity.这样,如果我想使用Activity具有不同显示行为的另一个类,我只需更改监听器并Fragment保持代码不变.

这是一个很好的方法吗?是否有标准的良好做法或更好的设计模式?

Evi*_*uck 12

使用侦听器是Fragment与您的活动之间进行通信的推荐方式.

有关信息,请参阅此Android documentatin部分.简而言之,它们只是通过Activity类实现一个侦听器接口,并将一个片段中的getActivity()结果转换为一个侦听器.

根据我的个人经验,这非常方便,因为您可以:

  1. Easilly切换底层活动(例如,您将整个片段托管在包装器活动中以实现3.0之前的兼容性,并将此片段与11+中的其他片段一起托管)
  2. 如果包装器活动支持回调,则可以轻松控制.只需检查它是否实现了侦听器,如果没有,则执行特定于应用程序的操作.