mba*_*ben 22 android google-maps nullpointerexception google-maps-android-api-2
我正在尝试使用RelativeLayout自定义InfoWindow作为我的标记,但我NullPointerException每次都会showInfoWindow调用(通过点击Marker或以编程方式).我正在使用Google Maps Android API v2.
例外:
FATAL EXCEPTION: main
java.lang.NullPointerException
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:465)
at android.view.View.measure(View.java:15172)
at maps.a.y.i(Unknown Source)
at maps.a.y.a(Unknown Source)
at maps.a.w.a(Unknown Source)
at maps.a.bd.a(Unknown Source)
at maps.y.bw.b(Unknown Source)
at maps.y.bw.a(Unknown Source)
at maps.a.dh.a(Unknown Source)
at maps.a.n.c(Unknown Source)
at maps.a.dw.a(Unknown Source)
at maps.a.bd.c(Unknown Source)
at maps.a.dq.onSingleTapConfirmed(Unknown Source)
at maps.e.v.onSingleTapConfirmed(Unknown Source)
at maps.e.j.handleMessage(Unknown Source)
...
Run Code Online (Sandbox Code Playgroud)
我的代码:
*custom_infowindow.xml*
<?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"
android:padding="10dip" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="5dip"
android:src="@drawable/icon" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/icon"
android:ellipsize="end"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:singleLine="true" />
<TextView
android:id="@+id/snippet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:layout_toLeftOf="@id/icon"
android:ellipsize="end"
android:paddingBottom="10dip"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:singleLine="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
CustomInfoWindowAdapter.java
public class CustomInfoWindowAdapter implements InfoWindowAdapter {
private View layout;
private LayoutInflater inflater;
public CustomInfoWindowAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
@Override
public View getInfoContents(Marker marker) {
return null;
}
@Override
public View getInfoWindow(Marker marker) {
ViewHolder holder;
if (layout == null) {
layout = inflater.inflate(R.layout.custom_infowindow, null);
holder = new ViewHolder();
holder.title = (TextView) layout.findViewById(R.id.title);
holder.snippet = (TextView) layout.findViewById(R.id.snippet);
layout.setTag(holder);
} else {
holder = (ViewHolder) layout.getTag();
}
holder.title.setText(marker.getTitle());
holder.snippet.setText(marker.getSnippet());
return layout;
}
static class ViewHolder {
TextView title;
TextView snippet;
}
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我使用LinearLayout它而工作得很好,但ViewGroup如果可能,我宁愿只使用一个.当然,我想知道onMeasure抛出一个会发生什么NullPointerException.
编辑:此外,包裹RelativeLayout内部a FrameLayout或a LinearLayout将工作.RelativeLayout当然,把它包装在另一个里面也不会.
oot*_*nii 27
我有这个问题,并能够通过添加来解决它
view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth,desiredHeight));
Run Code Online (Sandbox Code Playgroud)
从InfoWindowAdapter.getInfoWindow返回之前到视图
| 归档时间: |
|
| 查看次数: |
8421 次 |
| 最近记录: |