gpt4 book ai didi

java - 如何在 fragment 中正确实现谷歌地图?

转载 作者:行者123 更新时间:2023-12-01 10:17:03 26 4
gpt4 key购买 nike

我在 stackoverflow 上进行了搜索,并查看了很多解决方案,例如, here

here

我查看了更多内容,但没有一个在性能方面具有强大的功能。这是我到目前为止所得到的

这个有效,但仅在 fragment 第一次创建时有效,但在返回到 map fragment 后,它给了我布局膨胀异常

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
view=inflater.inflate(R.layout.fragment_public_maps,null,false);
googleMap= (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.pub_map);
googleMap.getMapAsync(this);
return view;
}

我也尝试过这个,它有效,但它使我的应用程序变慢,有时甚至崩溃

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
try
{
view=inflater.inflate(R.layout.fragment_public_maps,null,false);

}
catch (InflateException e)
{
googleMap= (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.pub_map);
googleMap.getMapAsync(this);
return view;
}
googleMap= (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.pub_map);
googleMap.getMapAsync(this);
return view;

}

我不知道还能做什么,如果有人能指出我正确的方向,我将非常感激。

最佳答案

我这样做的方法是在你的fragments xml文件中放置一个FrameLayout,效果很好,如下所示:

<FrameLayout
android:id="@+id/map_id"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

然后在 fragment 的 onActivityCreated 方法中执行以下操作:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

mMapFragment = MapFragment.newInstance();
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN) {
getChildFragmentManager().beginTransaction().replace(R.id.map_id, mMapFragment).commit();
} else {
getFragmentManager().beginTransaction().replace(R.id.map_id, mMapFragment).commit();
}
mMapFragment.getMapAsync(this);
}

如果您使用支持 fragment ,

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

mMapFragment = SupportMapFragment.newInstance();
getSupportFragmentManager().beginTransaction().replace(R.id.sod_map_lite, mMapFragment).commit();
}

关于java - 如何在 fragment 中正确实现谷歌地图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35835581/

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