作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 stackoverflow 上进行了搜索,并查看了很多解决方案,例如, 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/
我是一名优秀的程序员,十分优秀!