Android Layout Inspector 中的灰色视图是啥意思?

Posted

技术标签:

【中文标题】Android Layout Inspector 中的灰色视图是啥意思?【英文标题】:What does a greyed out view in the Android Layout Inspector mean?Android Layout Inspector 中的灰色视图是什么意思? 【发布时间】:2019-05-13 22:20:57 【问题描述】:

android Studio 中,Tools -> Layout Inspector,View Tree 中的灰色(柔和、暗淡)视图是什么意思?该层仍然具有VISIBLE 属性

我在文档https://developer.android.com/studio/debug/layout-inspector 中没有看到任何解释,并且悬停视图时没有工具提示。

你可以download the .li layout capture in question here


对于上下文/参考,我试图弄清楚为什么片段没有出现在 id/content_container、https://gitlab.com/gitlab-org/gitter/gitter-android-app/issues/108 中

如果您想自己查看代码,该项目是开源的,https://gitlab.com/gitlab-org/gitter/gitter-android-app

【问题讨论】:

【参考方案1】:

在拍摄 LayoutInspector 快照时不会呈现灰显的 Views,因为它们不需要显示。

例子:

您代码中的 NavigationView 目前处于隐藏状态(您可以通过打开它并使用 LayoutInspector 拍摄另一个快照来测试我是否正确) NavigationView 中的 RecyclerView 是灰色的,只要它没有分配给它的适配器(也可能是空的 - 没有测试它) 有时Views 不适合屏幕,例如当您忘记将LinearLayout 设置为“垂直”时,它的大部分子项都位于屏幕右边缘的右侧

【讨论】:

【参考方案2】:

这些节点是样板布局,对于框架来说是必不可少的。

ContentFrameLayout 是 ID 为 android.R.id.content 的根视图,

其中有R.layout.activity_main 膨胀,并在其中添加更多嵌套节点。

基本上是名称空间android.R(灰色)与im.gitter.gitter.R(黑色)。

来自android.R 的节点在可见布局膨胀时可能仍会变黑。

【讨论】:

这种情况下有子元素怎么办? i.imgur.com/aIfIESr.png 我确实在NavigationView 上看到了INVISIBLE?也许它与任何绘图/渲染无关? @MLM 那个子元素也可能是样板,没有自定义视图膨胀;他们需要在那里,因为否则框架会抛出 NPE。我还检查了gitlab.com/gitlab-org/gitter/gitter-android-app/tree/master/app/… ...只是不确定是哪一个。 供参考,在app/src/main/res/layout/activity_main.xml和关联的app/src/main/java/im/gitter/gitter/activities/MainActivity.java 什么是布局样板?为什么其他FrameLayoutContentFrameLayoutLinearLayout 不是灰色的? @MLM ContentFrameLayout 是 id 为 android.R.id.content 的根视图,它的 R.layout.activity_main 已膨胀,并在其中添加了更多嵌套节点。它源自自定义 xml。查看MainActivity.java 时,没有NavigationView 标头被膨胀;如果您要在其中添加一个自定义标题,它不应该再变灰(只是为了证明我所说的)。也更新了答案......命名空间的东西似乎是最好的解释 - 因为它是框架与应用程序资源之间的区别。

以上是关于Android Layout Inspector 中的灰色视图是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Studio 中使用旧版 Layout Inspector

Layout Inspector - 如何查找文本元素的当前字体

Layout布局列表

Android GPU Inspector

如何在 Android Studio 中终止 Database Inspector

Android Studio App Inspector 的问题