Android杂谈RelativeLayout中的baseline是什么?

摘要:
如您所见,它覆盖了上述控件,但不是垂直居中的

中文翻译是基准线的意思,看似简单又有些不好理解,其实这个baseline相当于笔记本里写文字时候的底下的那条线,在RelativeLayout中baseline举例:

比如,加入两个相邻的TextView,给第二个TextView一个大一点的padding(比如20dp),如果加了layout_alignBaseline到第二个TextView中的话,TextView中的文字"world"会与第一个TextView中的"hello"处于同一水平线,第二个TextView控件是上移了,就好像是"hello"和"world"处于同一条线上,如果没有加layout_alignBaseline,具体看下面效果图

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <TextView 
        android:id="@+id/text1"
        android:text="hello"
        android:background="#aa0000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />    
        <TextView
            android:text="world"
            android:background="#00ff00"
            android:padding="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/text1"
            android:layout_alignBaseline="@id/text1"
            />
</RelativeLayout>

1:未加layout_alignBaseline

Android杂谈RelativeLayout中的baseline是什么?第1张

2:加layout_alignBaseline,就像两排文字hello world在一条线上写的

Android杂谈RelativeLayout中的baseline是什么?第2张

3:测试垂直方面,将第二个TextView设置为layout_below属性,未加layout_alignBaseline

Android杂谈RelativeLayout中的baseline是什么?第3张

4、测试垂直方面,将第二个TextView设置为layout_below属性,加layout_alignBaseline。可以看到,它是将上面的控件覆盖了,但是并没有垂直居中

Android杂谈RelativeLayout中的baseline是什么?第4张

 

免责声明:文章转载自《Android杂谈RelativeLayout中的baseline是什么?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Windos Linux(CentOS 7) opencv安装 tar.gz文件安装Yapi数据迁移(docker版)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android学习笔记技巧之给文本加边框

BorderTextViews.Java [java]view plaincopy packagexiaosi.BorderTextView; importandroid.content.Context; importandroid.graphics.Canvas; importandroid.graphics.Color; importand...

如何创建启动界面Splash Screen

启动界面Splash Screen在应用程序是很常用的,往往在启动界面中显示产品Logo、公司Logo或者开发者信息,如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。Android 应用程序创建一个启动界面Splash Screen非常简单。比如创建一个工程MySample,主Acitity就叫MySample...

【Android 应用开发】 ActionBar 基础

作者 : 万境绝尘 (octopus_truth@163.com) 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/39204393 示例代码下载 :  -- GitHub : https://github.com/han1202012/Octopus_ActionBar.git -...

安卓的设备的分辨率

DisplayMetrics metrice= new DisplayMetrics(); Display defaultDisplay = getWindowManager().getDefaultDisplay();defaultDisplay.getMetrics(metrice); int densityDpi = metrice.densityD...

基于Unity的AR开发初探:发布AR应用到Android平台

本文接上一篇,介绍一下如何通过Unity发布第一个AR应用至Android平台,在Android手机上使用我们的第一个AR应用。 一、一些准备工作 1.1 准备Java JDK 这里选择的是JDK 1.8.x版本,可以从这里下载。 1.2 准备Android SDK 这里选择的是R24.1.x-Windows版本,可以从这里下载。 Note:为了减少配置的...

uniapp 微信小程序 微信7.0.12版本IOS端部分request请求被缓存

在IOS端微信更新深色模式后(7.0.12版本),IOS端小程序会出现实时请求的数据无法实时渲染到页面上。 也在微信社区向官方反映过该情况 ----> https://developers.weixin.qq.com/community/develop/doc/00064a827907e869a61a7220456c00 但是官方要求提供原生代码(我...