带有换行包装的多行TextView

时间:2016-09-15 07:09:05

标签: android xamarin xamarin.android xamarin.forms google-maps-android-api-2

我正在尝试为Google地图图钉创建一个自定义的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>

结果:

Result

如图所示,缺少第一条包裹线后的文字。如果没有包裹线,或者最后一行是包裹线,那么所有线都会完美显示(见下图)。有谁知道如何让它正常工作?

Expected Result

1 个答案:

答案 0 :(得分:1)

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>