Повышение производительности:
Раньше я сохранял ВСЕ изображения в папке drawable
, это может быть причиной того, что карта сначала загружается медленно, когда рисуют маркеры на экране, изображение может не соответствовать размеру экрана. Теперь Я сохранил изображения в drawable-mdpi
, drawable-hdpi
и т.д., приложение работает более плавно, чем раньше. Надеюсь, что это поможет.
Оригинальный вопрос:
Я создал карту в фрагменте, исходный код можно найти ниже.
Фрагмент карты вялый, когда он загружается в первый раз. Если я заберу какой-либо другой фрагмент и снова нажму на фрагмент карты, он будет загружен быстрее и не будет работать.
Может ли кто-нибудь сказать мне, что здесь происходит? Спасибо!
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"/>
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() {
// Do a null check to confirm that we have not already instantiated the fragment_map.
if (myMap == null) {
// Try to obtain the fragment_map from the SupportMapFragment.
myMap = ((SupportMapFragment) MainActivity.fragmentManager.findFragmentById(R.id.map)).getMap();
// Check if we were successful in obtaining the fragment_map.
if (myMap != null) {
setUpMap();
}
}
}