好的,所以这里有一个奇怪的...我有一堆片段的活动。我有一些代码需要访问片段视图。我使用getView()方法获取片段视图。突然间,我的代码在几次提交之间停止了工作。在一个非常痛苦的调试过程之后,我将问题缩小到了Google Play服务的版本,在其中一个提交中将其从6.5.87更改为7.3。检查布局层次结构我可以看到当我的代码工作时(即getView()返回我期望的布局,在我的容器下有一个额外的FrameLayout,所以层次结构如下所示:
<...stuff...>
- FrameLayout (resource-id com.myapp:id/container)
- FrameLayout (resource-id )
- LinearLayout (resource-id )
- LinearLayout (top level layout in my fragment)
使用7.3服务时,这看起来像:
<...stuff...>
- FrameLayout (resource-id com.myapp:id/container)
- LinearLayout (resource-id )
- LinearLayout (top level layout in my fragment)
任何想法为什么首先有一个FrameLayout以及它在新的PlayServices中的位置?
答案 0 :(得分:2)
我的猜测是早期版本的Google Play服务为自己的特殊需求注入了额外的FrameLayout,现在已停止这样做了。
也许是因为他们的“请升级Google Play服务”对话框,谁知道。
由于Google Play服务是封闭源代码,因此很难明确回答这个问题。我遇到了同样的问题:我有代码依赖于Fragement getView()返回一个FrameLayout,当我从使用Google Play Services 6.1.x转到7.5.x时,这个问题就破裂了