早上好,我有三个活动,它们对应的片段是A、B和C。片段A是静态片段,其他片段是动态片段。
Activity A已经为fragment A实现了一个侦听器,该侦听器用于横向加载fragment B或在单一窗格中移动到新屏幕。
我想要的是,当调用fragment C的fragment B中的某个按钮被按下时,我希望它在横向上被fragment C替换(fragment A仍然存在),或者在单一窗格模式下打开一个新的屏幕。我在activity B的onCreate方法中有以下简单代码:
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
finish();
return;
}我正在努力避免片段对片段的通信,因为它是不受欢迎的。因此,这是否意味着我必须在activity A和B中实现片段B的侦听器,我猜在横向activity中,A会加载片段C,而在纵向中,B会接管?有没有更好的办法?我想只在activity B中实现侦听器,并在横向时传递给activity A,但我认为由于上面的代码,它甚至在传递之前就已经完成了。有什么想法吗?
发布于 2012-07-29 02:50:52
...so这是否意味着我在活动A和B中都实现了片段B的侦听器,我猜在横向定向中活动A将加载片段C,而在纵向中,B会接管,还是有更好的方法?我想只在活动B中实现侦听器,并在面向横向时传递到活动A,但我认为由于上面的代码,它甚至在通过之前就已经完成了。
您不能仅在B活动中实现侦听器,因为A活动必须能够在景观中显示片段C。如果您担心代码重复,那么您可以实现一个基本活动,为其实现回调以显示片段C,并使您的两个活动从该基类扩展。
由于您没有发布任何有关如何管理这些片段的真实代码,请记住,如果您处于纵向(在显示fragment B的B活动中),并且通过单击(或无论您做什么)将片段替换为C,则如果您将方向切换为横向,这将不会被带到activity A。
https://stackoverflow.com/questions/11701208
复制相似问题