Od arabski i hebrajski są przyczyną problemów, a angielski i rosyjski nie są, mam zamiar się domyślić, że coś jest zepsute w realizacji domyślne okno informacji w odniesieniu do prawej do lewej (RTL) Języki. Szczególnie, jeśli przeprowadzasz testy na Androidzie 4.2, może się zdarzyć, że domyślne okno okna Map V2 nieprawidłowo zastosowało różne atrybuty związane z RTL.
Na szczęście można podać własną zawartość okna informacyjnego, wprowadzając InfoWindowAdapter
i zwracając numer getInfoContents()
View
, którego chcesz użyć w oknie informacyjnym.
Na przykład this sample project (od jutrzejszej aktualizacji do mojej książce) pokazuje dostosowywania okno informacyjne za pomocą tego InfoWindowAdapter
:
class PopupAdapter implements InfoWindowAdapter {
LayoutInflater inflater=null;
PopupAdapter(LayoutInflater inflater) {
this.inflater=inflater;
}
@Override
public View getInfoWindow(Marker marker) {
return(null);
}
@Override
public View getInfoContents(Marker marker) {
View popup=inflater.inflate(R.layout.popup, null);
TextView tv=(TextView)popup.findViewById(R.id.title);
tv.setText(marker.getTitle());
tv=(TextView)popup.findViewById(R.id.snippet);
tv.setText(marker.getSnippet());
return(popup);
}
}
Jeśli chcesz wymienić całe okno, trzeba getInfoWindow()
zwrócić View
. Jeśli dla zawartości okna zostanie użyty , zostanie użyty zwrot. Następnie załączasz instancję InfoWindowAdapter
poprzez setInfoWindowAdapter()
na swoim GoogleMap
.
W twoim przypadku możesz użyć własnego układu, aby upewnić się, że poprawnie implementujesz RTL. To powinno w zasadzie wyjaśnić ten problem. Można sobie wyobrazić, że Maps V2 robi coś dziwnego, co łamie kod RTL, który normalnie powinien zadziałać, w takim przypadku musisz file an issue.
Może okazać się, że mapy V2 nie ma odpowiedniego wsparcia RTL. Czy napotykasz problemy z językami LTR? – CommonsWare
Pewnie, że nie, kolego. Wydaje się, że problem dotyczy tylko i18n. –
Ponownie, moja teoria nie jest ogólnie dostępna w języku i18n, ale w językach RTL i LTR. Prawidłowa obsługa RTL jest stosunkowo nowa w systemie Android, a V2 w Mapach może go zepsuć.Możesz użyć 'InfoWindowAdapter' do stworzenia własnej zawartości balonu mapy, gdzie wykonasz lepszą pracę niż wbudowane elementy z RTL. – CommonsWare