gpt4 book ai didi

android - MapFragment 返回 Null

转载 作者:行者123 更新时间:2023-11-30 02:45:07 26 4
gpt4 key购买 nike

我有一个 Activity 和 MapFragment 类。我在 Activity 中创建了 MapFragment 对象。当我尝试获取 mapFragmentObject.getView() 时,它返回 Null。但是我已经像这样创建了 MapFragment

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}

view = inflater.inflate(R.layout.activity_main, container, false);

mapView = ((MapView) view.findViewById(R.id.map));

mapView.onCreate(savedInstanceState);
setMapView();

return view;
}

public void setMapView() {
try {

map = mapView.getMap();

map.clear();

LatLngBounds.Builder builder = new LatLngBounds.Builder();
MapData mapData = MapData.getInstance();
Double[][] latlang = mapData.getLatlang();
String[] WONum = mapData.getWOnum();
marker = new Marker[mapData.getLatlang().length];
for (int i = 0; i < mapData.getLatlang().length; i++) {
this.marker[i] = map.addMarker(new MarkerOptions()
.position(new LatLng(latlang[i][0], latlang[i][1]))
.title(" ").snippet(" " + WONum[i] + "\n"));
builder.include(this.marker[i].getPosition());
}

LatLngBounds bounds = builder.build();

CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 60,
60, 1);
map.animateCamera(cu);

map.setOnCameraChangeListener(new OnCameraChangeListener() {

@Override
public void onCameraChange(CameraPosition position) {

if (position.zoom > 12.0f) {
map.animateCamera(CameraUpdateFactory.zoomTo(12.0f));
} else if (position.zoom < 2.0f) {
map.animateCamera(CameraUpdateFactory.zoomTo(4.0f));
}
}
});

} catch (Exception e) {

}

}

我从 Activity 调用就像在创建中

WOLocator locator = new WOLocator();
getFragmentManager().beginTransaction().add(locator, "Map").commit();
setContentView(getFragmentManager().findFragmentByTag("Map").getView());

我做错了什么?

最佳答案

这实际上也是我遇到的一个问题,问题是由于 map 在您当前尝试请求它时未初始化而引起的。 map 过程比标准 View 设置需要更长的时间。

有些监听器可以设置为在准备就绪后触发,但我发现使用 map fragment 的 onActivityCreated 函数非常可靠(我的扩展了 SupportMapFragment)。

因此,对于您的示例,我会尝试将您的 setMapView() 函数调用移至 fragment 的 onActivityCreated 函数。

希望这对您有所帮助。

关于android - MapFragment 返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25184863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com