我正在尝试为google maps pin创建一个自定义infocontents模板,在使用以下代码包装包含多个换行符文本的多行TextView
时,我遇到了一些奇怪的行为:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="4dp"
android:paddingTop="4dp"
android:orientation="vertical">
<ImageView
android:id="@+id/OfficeImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:scaleType="centerInside"
android:adjustViewBounds="true"
android:maxWidth="175dp"/>
<TextView
android:layout_marginTop="10dp"
android:id="@+id/InfoWindowTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sunshine Coast"
android:textColor="@android:color/black"
android:textStyle="bold"/>
<TextView
android:id="@+id/InfoWindowSubtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="false"
android:textSize="10dp"
android:text="Level 3, 2 Emporio Place\n2 Maroochy Blvd, Maroochydore QLD 4558\nPo Box 5800, Maroochydore BC QLD 4558"
android:maxLines="10"
android:textColor="@android:color/black"/>
</LinearLayout>
结果:
如图所示,第一行换行后的文本丢失。如果没有换行符,或者最后一行是换行符,则所有行都将完美显示(参见下图)。有人知道怎么让它正常工作吗?
最佳答案
Muhammad Babar's建议解决了问题。我添加了一个relativelayout作为linearlayout的父级,现在所有文本都正确显示了(请参见下面的工作代码)。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="4dp"
android:paddingTop="4dp"
android:orientation="vertical">
<ImageView
android:id="@+id/OfficeImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:scaleType="centerInside"
android:adjustViewBounds="true"
android:maxWidth="175dp"/>
<TextView
android:layout_marginTop="10dp"
android:id="@+id/InfoWindowTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sunshine Coast"
android:textColor="@android:color/black"
android:textStyle="bold"/>
<TextView
android:id="@+id/InfoWindowSubtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10dp"
android:text="Level 3, 2 Emporio Place\n2 Maroochy Blvd, Maroochydore QLD 4558\nPo Box 5800, Maroochydore BC QLD 4558"
android:maxLines="10"
android:textColor="@android:color/black"/>
</LinearLayout>
</RelativeLayout>