фон
Я реализует детальный вид пользовательского местоположения. В этой операции используется ViewPager с различными фрагментами, где нужно быть SupportMapFragment. Я тестирую Moto E, используя 5.0.2.
Проблема
Когда маркер нажимается панель карты должна скользить справа. Эта панель инструментов не отображается. Отображаются все другие элементы управления, такие как компас и кнопка «Сковорода для моего местоположения». Когда я делаю это обычным способом с Activity, который имеет фрагмент, закодированный в XML, элементы управления скользят, как должны.
Я также попытался добавить фрагмент к деятельности обычным способом, как это:
подклассов из SupportMapFragment в ViewPager обыкновение показывать панели инструментов карты
РеализацияFragment fragment = MapFragment.newInstance(title, lat, lng);
getSupportFragmentManager().beginTransaction().replace(R.id.testMapContainer, fragment).commit();
public class MapFragment extends SupportMapFragment implements OnMapReadyCallback {
private final static String TITLE_KEY = "titleKey";
private final static String LATITUDE_KEY = "latitudeKey";
private final static String LONGITUDE_KEY = "longitudeKey";
private final static float ZOOM = 14;
private String title;
private double latitude;
private double longitude;
public MapFragment() {
super();
}
public static MapFragment newInstance(String title, double latitude, double longitude) {
MapFragment fragment = new MapFragment();
Bundle bundle = new Bundle();
bundle.putString(TITLE_KEY, title);
bundle.putDouble(LATITUDE_KEY, latitude);
bundle.putDouble(LONGITUDE_KEY, longitude);
fragment.setArguments(bundle);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = super.onCreateView(inflater, container, savedInstanceState);
Bundle bundle = getArguments();
title = bundle.getString(TITLE_KEY);
latitude = bundle.getDouble(LATITUDE_KEY);
longitude = bundle.getDouble(LONGITUDE_KEY);
getMapAsync(this);
return v;
}
@Override
public void onMapReady(GoogleMap map) {
LatLng targetLatLng = new LatLng(latitude, longitude);
map.getUiSettings().setMapToolbarEnabled(true);
map.setBuildingsEnabled(true);
map.setMyLocationEnabled(true);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(targetLatLng, ZOOM));
map.addMarker(new MarkerOptions()
.title(title)
.position(targetLatLng));
}
}
Кто-нибудь знает, что проблема может быть? Я уверен, что это имеет какое-то отношение к моей реализации SupportMapFragment.
EDIT:
Проблема заключалась в XML деятельности, на котором размещается ViewPager. MapToolbar есть, но выключен. Я почти не вижу его, если я вращаю устройство. Если я скрою панель приложений перед просмотром вкладки карты, MapToolbar будет полностью виден.
Как я могу исправить XML, так что MapToolbar всегда виден (и позволяет Сворачивание панели инструментов)?
Я клонировал свой репозиторий, и она работала. Однако - это не работает, когда я реализую его как вы (с помощью MapView и вызывает MapsInitializer, onCreate, onDestroy, onLowMemory. Я также пробовал добавлять onResume и onSaveInstanceState, но не сигары). Я пробовал оба с устаревшим методом getMap и getMapAsync. Следующий шаг? : О, сумасшедший здесь. – pepefatha
В чем проблема? Можете ли вы показать свой «logcat»? Вы изменили свой xml-макет для «MapView»? – bjiang
Вам это помогает? Если да, примите, спасибо. – bjiang