【发布时间】:2017-11-29 03:37:44
【问题描述】:
如果我在布局 xml 中设置 @null app:tabTextColor app:tabTextColor="@null",那么 @null 编译成什么?
【问题讨论】:
-
当你说“编译成”是什么意思?你是问它是什么意思还是什么?
如果我在布局 xml 中设置 @null app:tabTextColor app:tabTextColor="@null",那么 @null 编译成什么?
【问题讨论】:
在这种情况下 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字节码在这里
【讨论】:
不完全确定这是否是您正在寻找的,但是..
@null 表示 tabTextColor 返回 null 它在 java 中相当于:tabLayout.setTabTextColors(null)
表示标签文本没有设置颜色。 @null 基本上意味着“什么都没有设置”。
【讨论】: