我正在尝试将 Google Maps View 与 Litho 集成,并且为此创建了 MountSpec。我有两个问题。
首先,我需要在 OnPrepare 方法中运行一些后台线程代码,但结果无法将后台任务的结果分配给 Output 对象。有什么更好的方法来处理这个问题?
其次,当视图呈现时,它会抛出一个错误(下面的 Stacktrace)。
java.lang.ClassCastException:com.google.android.gms.location.places.internal.zzas 无法在 com.facebook.litho.widget.Recycler.onPrepare 中转换为 android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener(Recycler .java:98) 在 com.facebook.litho.ComponentLifecycle.createLayout(ComponentLifecycle.java:251) 在 com.facebook.litho.LayoutState.createTree(LayoutState.java:1237) 在 com.facebook.litho.LayoutState.createAndMeasureTreeForComponent(布局状态.java:1406) 在 com.facebook.litho.LayoutState.calculate(LayoutState.java:928) 在 com.facebook.litho.ComponentTree.calculateLayoutState(ComponentTree.java:1235) 在 com.facebook.litho.ComponentTree.measure(ComponentTree.java :545) 在 com.facebook.litho.LithoView.onMeasure(LithoView.java:218) 在 android.view.View.measure(View.java:17562) 在 android.support.v4.view.ViewPager。onMeasure(ViewPager.java:1658) at android.view.View.measure(View.java:17562) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5608) at android.support.design.widget.CoordinatorLayout.onMeasureChild (CoordinatorLayout.java:714) 在 android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:90) 在 android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:第1391章) ) 在 android.widget.FrameLayout.onMeasure(FrameLayout.java:436)测量(View.java:17562)在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5608)在 android.widget.FrameLayout.onMeasure(FrameLayout.java:436)测量(View.java:17562)在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5608)在 android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
这是引发错误的 MountSpec:
mapView.getMapAsync(googleMap -> {
Places.GeoDataApi.getPlaceById(googleApiClient, locationId)
.setResultCallback(places -> {
googleMap.addMarker(
new MarkerOptions()
.position(new LatLng(0,0))
);
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
});
});