无法在 LinearLayout 中垂直对齐 2 个 TextView

Cannot vertically align 2 TextViews within a LinearLayout

我有一张日历图片 (72x72)。我正在尝试将月份覆盖在最高位,将日期覆盖在主要位。

我正在尝试通过使用垂直 LinearLayout 将日历设置为背景图像并将两个 TextView 作为 LinearLayout 的子项来实现此目的。

我已经让它工作到一定程度,但我无法让月份充分向下移动以使其处于正确的位置。

这张图片是我到目前为止所获得的:

使用以下布局片段:

 <LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/cal"
    android:layout_gravity="center"
    android:weightSum="8">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="September"
        android:id="@+id/textView8"
        android:layout_weight="5"
        android:gravity="center_horizontal|bottom"
        android:textColor="#ffffff"
        android:textSize="10dp"
        android:layout_gravity="center_horizontal"
        android:textStyle="bold"
        android:paddingBottom="-10dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Display1"
        android:text="21"
        android:id="@+id/textView9"
        android:textColor="#000000"
        android:textStyle="bold"
        android:layout_weight="3"
        android:gravity="center"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="0dp"
        android:paddingTop="0dp" />

</LinearLayout>

我一直在研究重量和填充(如您所见),但我尝试过的都没有用。

任何人都可以建议我应该做什么吗? (如果可能的话,我不想更改文字大小。)

答案是按照 Hussein El Feky(和 Brendan Shaenzer)的建议在日期月份 TextView 的顶部添加填充。所以谢谢你们。

这是修正后的图像:

看起来您需要 space 在第一个 TextViewLinearLayout 的顶部之间,但我没有看到其中的任何属性可以实现这一点。任何一个:

  • android:paddingToptextView8
  • android:layout_marginToptextView8
  • android:paddingTopLinearLayout

应该做。

试试这个布局:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@drawable/cal">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="September"
        android:id="@+id/textView8"
        android:layout_weight="5"
        android:gravity="center"
        android:textColor="#ffffff"
        android:textSize="10dp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Display1"
        android:text="21"
        android:id="@+id/textView9"
        android:textColor="#000000"
        android:textStyle="bold"
        android:layout_weight="7"
        android:gravity="center" />

</LinearLayout>

如果你能提供你的cal drawable,我也将能够改进我的答案。我让你的 TextViews 居中,但现在玩权重,因为我没有你的 drawable。