无法在 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 在第一个 TextView
和 LinearLayout
的顶部之间,但我没有看到其中的任何属性可以实现这一点。任何一个:
android:paddingTop
在 textView8
android:layout_marginTop
在 textView8
android:paddingTop
在 LinearLayout
应该做。
试试这个布局:
<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。
我有一张日历图片 (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 在第一个 TextView
和 LinearLayout
的顶部之间,但我没有看到其中的任何属性可以实现这一点。任何一个:
android:paddingTop
在textView8
android:layout_marginTop
在textView8
android:paddingTop
在LinearLayout
应该做。
试试这个布局:
<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。