水平线性布局中’基线”对齐导致的问题

在水平线性布局中包含多个TextView 并且字号不统一时,这个时候给TextView设置对齐方式的时候会出现比较诡异的情况

下面是一个例子 示例图

它的布局情况如下

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/txtProductPrice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="0dp"
            android:text="¥ 45"
            android:textColor="#f00"
            android:textSize="17sp" />

        <TextView
            android:id="@+id/txtProductOldPrice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:ellipsize="end"
            android:maxLines="2"
            android:text="原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80原价: ¥80"
            android:textColor="#999"
            android:textSize="11sp" />
    </LinearLayout>

这明显与预计的情况不太一样,它们应该是下对齐的.这里就是因为linearlayout中计算了基线对齐的情况. 只需要在linearlayout中加上如下属性即可 android:baselineAligned="false"

去除基线对齐再来看我们的布局. 这里写图片描述

现在就完全与我们设想的一致了