Google 地点自动完成片段导致重复 ID 错误
Google Places Auto Complete fragment causes duplicate id error
您好,我在我的应用程序中使用 google 的位置自动完成 api。我需要 google 将片段放在另一个片段中并使其正常工作。基本上我有一个包含 3 个 imagviews 的选项卡,当您单击其中一个时,一个片段将填充主框架布局。最初,如果我单击显示带有自动完成位置片段的片段的 imagview,它就可以工作。但是,如果我转到另一个选项卡然后返回它,我会在 google 位置自动完成片段上收到重复 ID 错误。
这是包含自动完成片段的片段的 xml:
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/dialog_holo_light_frame"
android:orientation="vertical">
<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="42dp"
android:background="@android:drawable/dialog_frame"
tools:layout="@layout/place_autocomplete_fragment" />
这是包含自动完成片段的片段中的代码:
this.locationSearchBar = (PlaceAutocompleteFragment)getActivity().getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
这是我得到的错误:
Duplicate id 0x7f0800dc, tag null, or parent id 0x7f0800f6 with another fragment for com.google.android.gms.location.places.ui.PlaceAutocompleteFragment
我阅读了其他类似的问题,但 none 他们的解决方案对我有用。任何帮助将不胜感激。
尝试添加此代码:
@Override
public void onDestroy() {
super.onDestroy();
if(mAutocompleteFragment != null && getActivity() != null && !getActivity().isFinishing()) {
getActivity().getFragmentManager().beginTransaction().remove(mAutocompleteFragment).commit();
}
}
我相信你也可以把它放在 onDestroyView() 中。在将 AutocompleteFragment 添加到相同的 Activity 之前,需要将其从每个 ACTIVITY 中删除。这对我来说是个问题,当我创建并随后销毁了一个添加了 AutocompleteFragment 的 Fragment,然后尝试再次创建相同的 Fragment 而没有销毁它在其中运行的 Activity。
您好,我在我的应用程序中使用 google 的位置自动完成 api。我需要 google 将片段放在另一个片段中并使其正常工作。基本上我有一个包含 3 个 imagviews 的选项卡,当您单击其中一个时,一个片段将填充主框架布局。最初,如果我单击显示带有自动完成位置片段的片段的 imagview,它就可以工作。但是,如果我转到另一个选项卡然后返回它,我会在 google 位置自动完成片段上收到重复 ID 错误。
这是包含自动完成片段的片段的 xml:
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/dialog_holo_light_frame"
android:orientation="vertical">
<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="42dp"
android:background="@android:drawable/dialog_frame"
tools:layout="@layout/place_autocomplete_fragment" />
这是包含自动完成片段的片段中的代码:
this.locationSearchBar = (PlaceAutocompleteFragment)getActivity().getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
这是我得到的错误:
Duplicate id 0x7f0800dc, tag null, or parent id 0x7f0800f6 with another fragment for com.google.android.gms.location.places.ui.PlaceAutocompleteFragment
我阅读了其他类似的问题,但 none 他们的解决方案对我有用。任何帮助将不胜感激。
尝试添加此代码:
@Override
public void onDestroy() {
super.onDestroy();
if(mAutocompleteFragment != null && getActivity() != null && !getActivity().isFinishing()) {
getActivity().getFragmentManager().beginTransaction().remove(mAutocompleteFragment).commit();
}
}
我相信你也可以把它放在 onDestroyView() 中。在将 AutocompleteFragment 添加到相同的 Activity 之前,需要将其从每个 ACTIVITY 中删除。这对我来说是个问题,当我创建并随后销毁了一个添加了 AutocompleteFragment 的 Fragment,然后尝试再次创建相同的 Fragment 而没有销毁它在其中运行的 Activity。