【问题标题】:What is `@null` compiled to?`@null` 编译成什么?
【发布时间】:2017-11-29 03:37:44
【问题描述】:

如果我在布局 xml 中设置 @null app:tabTextColor app:tabTextColor="@null",那么 @null 编译成什么?

【问题讨论】:

标签: android xml layout


【解决方案1】:

在这种情况下 app:tabTextColor="@null" 。 我们定义或赋予的任何属性都会传递给用于相应地绘制视图的 java 类。更多信息here

所以如果我们给一个按钮背景android:background="@null"

我们为我们的java Button 类文件赋予null,它不会在按钮背景上绘制任何内容。所以它就像java null 传递给一些方法或属性一样工作,并且将编译为与java 相同的null 引用。

编译后字节码中的a null is represented by a 0

了解 more 字节的工作原理

阅读更多here 以获取字节码中的 null

更多dalvik字节码在这里

【讨论】:

    【解决方案2】:

    不完全确定这是否是您正在寻找的,但是..

    @null 表示 tabTextColor 返回 null 它在 java 中相当于:tabLayout.setTabTextColors(null)

    表示标签文本没有设置颜色。 @null 基本上意味着“什么都没有设置”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多