android:lineSpacingExtra 属性是用来设置文字的行间距的,使用dp作单位,如:android:lineSpacingExtra="7dp"。但是,运行在不同版本的系统中,该属性显示出不同的效果。以下便是对该属性的应用总结。
1.当运行在Android 5.0 系统(包含)以下中,设置android:lineSpacingExtra="7dp"时,出现如下:
上图中,系统会在最后一行自动添加一个行间距大小的间距,效果等同于:android:paddingBottom="7dp"。这时,我们如果需要通过padding来控制View之间的间距时,需要考虑该间距。
2.当运行在5.0以上的系统中,设置android:lineSpacingExtra="7dp"时,又出现如下:
这时,我们会发现,最后一行不会出现自动添加一个行间距大小的下边距。这时,我们如果需要通过padding来控制View之间的间距时,又不需要考虑该间距。
如上,运行在不同的版本中,会出现不同的效果。那么如何避免这种兼容性问题呢?
我们可以通过设置该TextView的android:paddingBottom来设置下边距,这里不使用具体的数值,而是读取dimens文件的资源:
android:paddingBottom="@dimen/lineSpacingExtra"
这时我们再分版本设置dimens变量的值:
在values当中的dimens设置linepaddingbutton=0dp
在values-v22 当中的dimens设置linepaddingbutton=7dp
这样就可以解决兼容性的问题实现一致的显示的效果。