我想在我的一个Activity中使用SupportMapFragment.我将此片段直接添加到布局xml,并将此布局设置为内容视图.但是当Activity第一次启动时,它需要太长时间(超过1秒).接下来的发布是好的,需要几毫秒.
我试过了:
但没有任何帮助.显示地图没有任何问题或可疑日志.
你有什么建议,它是什么原因以及如何改进它?
编辑: 我有一个ListView,当用户点击Item时,它会使用MapFragment启动DetailActivity.单击项目后,在DetailActivity出现之前会有明显的延迟.只有onCreate方法,我调用setContentView,运行时间超过1秒.虽然活动在onCreate方法中,但此活动没有可见内容.点击和显示内容之间的这种延迟不是非常用户友好.
谢谢
绩效提升:
以前我将所有图像保存在drawable文件夹中,这可能是地图首次加载缓慢的原因,当在屏幕上绘制标记时,图像可能不适合屏幕大小.现在我保存了图像drawable-mdpi,drawable-hdpi等等,应用程序比以前更顺畅.希望能帮助到你
原始问题:
我在片段中创建了一个地图,源代码可以在下面找到.
第一次加载时,地图片段缓慢.如果我再去任何其他片段并再次点击地图片段,它就会加载得很快而且没有slug.
谁能告诉我这里发生了什么?谢谢!
fragment_map.xml,id是 map
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment"/>
Run Code Online (Sandbox Code Playgroud)
MyMapFragment.java(包含onCreateView和setUpMapIfNeeded)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
try {
rootView = inflater.inflate(R.layout.fragment_map, container, false);
} catch (InflateException e) {
/* map is already there, just return view as it is */
Log.e(TAG, "inflateException");
}
setUpMapIfNeeded();
return rootView;
}
public void setUpMapIfNeeded() …Run Code Online (Sandbox Code Playgroud)