好吧,这是一个奇怪的问题......我有一个包含一堆 fragment 的 Activity 。我有一些代码需要访问 fragment View 。我使用 getView() 方法获取 fragment View 。突然间,我的代码在几次提交之间停止工作。经过非常痛苦的调试过程后,我将问题缩小到 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 中的位置吗?
最佳答案
我的猜测是早期版本的 Google Play Services 为他们自己的特殊需要注入(inject)了一个额外的 FrameLayout,现在已经停止这样做了。
也许是因为他们的“请升级 Google Play 服务”对话框,谁知道呢。
由于 Google Play 服务是闭源的,因此很难明确回答这个问题。我遇到了同样的问题:我的代码依赖于 Fragement getView() 返回一个 FrameLayout,当我从使用 Google Play Services 6.1.x 转移到 7.5.x 时,这就中断了
关于android - Google Play 服务 6.5.87 与 7.3.0 - 布局问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30130202/