在 Lollipop 上的 InfoWindow 中呈现 RatingBar

Rendering a RatingBar within an InfoWindow on Lollipop

我在 InfoWindow 内呈现的布局中有一个 RatingBar。

在 KitKat 及以下版本中,它呈现良好。

在 Lollipop 上,InfoWindow 为 RatingBar 呈现一个空 space:

布局:

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:id="@+id/infowindow_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:gravity="center_horizontal"
    android:text="Venue Name Some More Text This Should Wrap Properly"
    android:textColor="@android:color/primary_text_light"
    android:textSize="20sp" />

   <TextView
    android:id="@+id/infowindow_type"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/infowindow_name"
    android:layout_centerHorizontal="true"
    android:gravity="center_horizontal"
    android:text="Type - Cuisine"
    android:textColor="@android:color/primary_text_light"
    android:textSize="15sp" />



<RatingBar
    android:id="@+id/infowindow_rating"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:layout_below="@+id/infowindow_type"
    android:numStars="5"
    android:rating="3.75" />

<TextView
    android:id="@+id/infowindow_norating"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/infowindow_rating"
    android:layout_centerHorizontal="true"
    android:gravity="center_horizontal"
    android:text="@string/infowindow_no_rating_yet"
    android:textColor="@android:color/primary_text_light"
    android:textSize="20sp" />

有解决此问题的想法吗?我认为这取决于 InfoWindow 呈现为视图的静态表示的方式,并且 Lollipop 中发生了一些变化。

Android Bug Issue

我找到了解决方法 - 您需要将 RatingBar 上的样式显式设置为 ratingBarStyleIndicator:

    <RatingBar
    android:id="@+id/infowindow_rating"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:layout_below="@+id/infowindow_type"
    android:numStars="5"
    android:rating="3.75"
    android:isIndicator="true"
    style="?android:attr/ratingBarStyleIndicator"
    />

我假设在使用 Canvas.Draw Custom InfoWindows

渲染 Lollipop 时绕过了一些 RatingBar 初始化

我很感兴趣地等待错误报告的结果。