美好的一天,我有三个活动及其相应的片段A
,B
和C
。片段A
是一个静态片段,其他片段是动态的。
活动A
已经为片段A
实现了一个侦听器,用于以横向方向加载片段B
或在单个窗格中移至新屏幕。
我想要的是在片段B
中按下某个按钮时调用片段C
,我希望它以横向方向的片段C
替换(片段{{ 1}}仍将存在)或以单窗格模式启动新屏幕。我在活动B A
方法中有这个简单的代码:
onCreate
我正试图避免片段到片段的通信,因为它是皱眉头。这是否意味着我必须在活动if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
finish();
return;
}
和B
中实现片段A
的侦听器,我猜测在横向定位活动时B
会加载片段{{ 1}}并且在纵向上,A
接管?有没有更好的办法?。我想到只在活动C
中实现监听器并在横向方向上传递给活动B
,但我认为由于上面的代码,它甚至在它通过之前就已经完成了。有什么想法吗?
答案 0 :(得分:1)
...所以这意味着我在两者中都实现了片段B的监听器 活动A和B,我猜测在横向方向 活动A将加载片段C,纵向,B接管或 有没有更好的办法?我想过只在Activity B中实现监听器 在横向定位时传递给活动A,但我认为它会有 由于上面的代码,它甚至在通过之前已经完成。
您无法仅在B
活动中实施侦听器,因为A
活动必须能够在横向中显示片段C
。如果您担心代码重复,那么您可以实现一个基本活动,为此实现回调以显示片段C
并使您的两个活动从该基类扩展。
由于您没有发布有关如何管理这些片段的任何实际代码,请注意,如果您处于纵向方向(在显示片段B
的{{1}}活动中)并点击(或者你做的任何事情)你用B
替换片段如果你将方向切换到横向,这将不会被带到活动C
。