Как исправить исчезновение фрагмента поиска на карте сразу после нажатия? - PullRequest
0 голосов
/ 23 февраля 2019

Я размышлял, я думаю, что каждый пост, имеющий отношение к моей проблеме, и, кажется, не может получить ответ.В настоящее время я пытаюсь начать проект, используя карты Google с местами и направлением.Моя проблема в том, что после всех моих усилий я не могу избавиться от исчезающей проблемы.Все остальное с картой работает нормально.Я не получаю ошибок при сборке или log-cat.

Вещи, которые я пробовал:

Удалил весь проект в Android Studio, а также из облачной платформы и начал с нуля.

Убедитесь, что включены все 3 API-интерфейса, например Maps SDK для Android, Места и Направление.(Я отключил и включил)

Установить учетные данные с ограничениями приложения и без.

Дважды проверил весь импорт, пароль sha1, ключ API и т. Д.

Вот мой xml:

<fragment
    android:id="@+id/place_autocomplete_fragment"
    android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
    android:layout_width="match_parent"
    android:layout_height="65dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />


<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginBottom="8dp"
    app:layout_constraintBottom_toTopOf="@+id/linearLayout"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/place_autocomplete_fragment" />

Вот моя ява:

public class MainActivity extends FragmentActivity implements OnMapReadyCallback, 
GoogleApiClient.ConnectionCallbacks{


private GoogleMap map;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    if (mapFragment != null) {
        mapFragment.getMapAsync(this);
    }


    PlaceAutocompleteFragment placeAutocompleteFragment = (PlaceAutocompleteFragment)
            getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);

    placeAutocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(Place place) {
            map.clear();
            map.addMarker(new MarkerOptions().position(place.getLatLng()).title(place.getName().toString()));
            map.moveCamera(CameraUpdateFactory.newLatLng(place.getLatLng()));
            map.animateCamera(CameraUpdateFactory.newLatLngZoom(place.getLatLng(), 19.0f));
        }

        @Override
        public void onError(Status status) {

        }
    });

}

@Override
public void onMapReady(GoogleMap googleMap) {
    map = googleMap;

    float zoomLevel = 19.0f;
    LatLng test = new LatLng(35.008522 ,-85.321050);

    map.addMarker(new MarkerOptions().position(test).title("test"));
    map.moveCamera(CameraUpdateFactory.newLatLng(test));
    map.moveCamera(CameraUpdateFactory.newLatLngZoom(test, zoomLevel));

}

@Override
public void onConnected(@Nullable Bundle bundle) {

}

@Override
public void onConnectionSuspended(int i) {

}

}

...