android - 地方自动完成正在打开一个新的覆盖谷歌搜索
问题描述
我正在使用 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);
}
});
解决方案
根据此处的Place Autocomplete 文档 ,您可以在覆盖模式下使用 Autocomplete 小部件(这称为“MODE_OVERLAY”),也可以在全屏模式下使用 Autocomplete 小部件(这称为 MODE_FULLSCREEN)。
当我第一次知道地点自动完成时,我也遇到了这个问题,但似乎你无法与按下的视图进行交互,你只能在上面提到的 MODE_FULLSCREEN 和 MODE_OVERLAY 之间进行选择(全部根据文档)
推荐阅读
- mongodb - 包含包含的 MongoDb 全文搜索
- javascript - 如何在网格中显示数据?
- c++ - CMake 配置 CMakeLists.txt
- c# - 逐行读取文本框并将其视为单独的文本
- laravel - 在雄辩的查询中使用选择时追加关系计数
- c# - 如何在 .NET Core 控制台应用程序中处理注入类之间的事件调用
- google-colaboratory - 是否可以训练这个工具/模型来恢复一般的 3d 对象
- reactjs - 如何在 Next.js 中的组件内获取类别页面数据?
- php - (preg_match ('#^/thank-you/hello/#', $_SERVER['REQUEST_URI'])
- reactjs - 将对象数组传递给功能组件和映射