今天发现LinearLayout嵌套TextView在使用Padding时出现了诡异问题

直接上效果图:

img

问题描述:
就是在一个横向的LinearLayout中放两个TextView,然后给第2个TextView设置Padding,结果影响的是第一个。
但是如果把TextView换成View就是正常的,也就是说TextView这货有鬼,下面贴上代码:

<LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_height="100dp">
        <TextView
            android:id="@+id/ed1"
            android:layout_height="50dp"
            android:layout_width="50dp"
            android:text="123"
            android:background="@color/cyan"/>
        <TextView
            android:id="@+id/ed2"
            android:layout_height="50dp"
            android:layout_width="50dp"
            android:padding="5dp"
            android:text="456"
            android:background="@color/cyan"/>
 </LinearLayout>

这涉及到线性布局的一个深层概念,基准线。

因为线性布局有基线对齐这个特性。第二个TextView加个padding导致文字下移,为了基线对齐第一个TextView自动下移