0

美好的一天,我有三个活动及其相应的片段ABC。片段A是静态片段,其他片段是动态的。

ActivityA已经实现了 fragment 的监听器,用于横向A加载Fragment 或移动到单个窗格中的新屏幕。B

我想要的是当在片段中按下某个按钮B调用片段C时,我希望它被C横向的片段替换(片段A仍然存在)或在单窗格模式下显示一个新屏幕。onCreate我在活动 B方法中有这个简单的代码:

if (getResources().getConfiguration().orientation == 
            Configuration.ORIENTATION_LANDSCAPE) {
        finish();
        return;
    }

我试图避免碎片到碎片的通信,因为它不受欢迎。那么这是否意味着我必须B在两个活动A中实现片段的侦听器B,我猜测当横向活动A会加载片段C和纵向时,B接管?有没有更好的办法?。我想只在活动中实现监听器并在横向时B传递给活动,但我认为由于上面的代码,它甚至在它通过之前就已经完成了。A有什么想法吗?

4

1 回答 1

1

...所以这是否意味着我在活动 A 和 B 中都为片段 B 实现了侦听器,我猜测当在横向方向活动 A 会加载片段 C 和纵向时,B 接管还是有更好的方法?我想只在活动 B 中实现侦听器并在横向方向中传递给活动 A,但我认为由于上面的代码,它甚至在它通过之前就已经完成了。

您不能仅在B活动中实现侦听器,因为A活动必须能够以C横向显示片段。如果您担心代码重复,那么您可以实现一个基本活动,您可以为其实现回调以显示片段C并使您的两个活动从该基类扩展。

由于您没有发布任何有关如何管理这些片段的真实代码,请记住,如果您处于纵向(在B显示片段的活动中B)并且通过单击(或您所做的任何事情),您将用C此替换片段A如果您将方向切换为横向,则不会进行活动。

于 2012-07-28T18:50:52.443 回答