我正在尝试为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>

结果:
android - 带换行符的多行TextView-LMLPHP
如图所示,第一行换行后的文本丢失。如果没有换行符,或者最后一行是换行符,则所有行都将完美显示(参见下图)。有人知道怎么让它正常工作吗?
android - 带换行符的多行TextView-LMLPHP

最佳答案

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>

10-05 20:11
查看更多