首页 > 解决方案 > 地方自动完成正在打开一个新的覆盖谷歌搜索

问题描述

我正在使用 Google 的自动完成位置小部件。我注意到,当我将它放在我的活动中并单击它时,它会在我的活动顶部打开一个片段(虽然我的活动是全屏的,但有一个状态栏)

如何将整个行为嵌入到我的活动中,以便单击以启动搜索的小部件实际上是填充了建议的同一个小部件

 <androidx.cardview.widget.CardView

    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginEnd="8dp"
    android:background="@null"
    app:layout_constraintBottom_toBottomOf="@+id/ibLocationAction"
    app:layout_constraintEnd_toStartOf="@+id/ibLocationAction"
    app:layout_constraintStart_toEndOf="@+id/ibClose"
    app:layout_constraintTop_toTopOf="@+id/ibLocationAction">

    <fragment
        android:id="@+id/autocomplete_fragment"
        android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</androidx.cardview.widget.CardView>



PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
                getFragmentManager().findFragmentById(R.id.autocomplete_fragment);

        autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
            @Override
            public void onPlaceSelected(Place place) {
                Log.i(GlobalVar.TAG, "Place: " + place.getName());
                chosenPlace = place;
            }

            @Override
            public void onError(Status status) {
                Log.i(GlobalVar.TAG, "An error occurred: " + status);
            }
        });

标签: androidgoogle-placesgoogleplacesautocomplete

解决方案


根据此处的Place Autocomplete 文档 ,您可以在覆盖模式下使用 Autocomplete 小部件(这称为“MODE_OVERLAY”),也可以在全屏模式下使用 Autocomplete 小部件(这称为 MODE_FULLSCREEN)。 当我第一次知道地点自动完成时,我也遇到了这个问题,但似乎你无法与按下的视图进行交互,你只能在上面提到的 MODE_FULLSCREEN 和 MODE_OVERLAY 之间进行选择(全部根据文档)


推荐阅读