gpt4 book ai didi

android - 如何在 fragment 中使用 PlaceAutoCompleteFragment 小部件

转载 作者:太空狗 更新时间:2023-10-29 15:50:44 25 4
gpt4 key购买 nike

我在 Fragment 中使用 PlaceAutoCompleteFragment。第一次打开 Fragment(放置 PlaceAutoCompleteFragment 的 App fragment )时,它工作得很好,就像一个魅力。

但是,当我第二次按下按钮打开 Fragment 时,它崩溃并出现以下错误。它只工作一次。

致命异常:

android.view.InflateException: Binary XML file line #64: Error inflating class fragment Caused by: java.lang.IllegalArgumentException: Binary XML file line #64: Duplicate id 0x7f0d0094, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.location.places.ui.PlaceAutocompleteFragment

这就是我使用它的方式,用于搜索位置

public View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.parkingview_fragment, container, false);

mapFragment = (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.map_parkingview);
mapFragment.getMapAsync(this);

// For Search location
PlaceAutocompleteFragment autocompleteFragment = null;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

autocompleteFragment = (PlaceAutocompleteFragment) getActivity().getFragmentManager().findFragmentById(R.id.place_fragment_parkingview);
}

autocompleteFragment.setOnPlaceSelectedListener(this);
autocompleteFragment.setHint("Search a Location");
// autocompleteFragment.setBoundsBias(BOUNDS_MOUNTAIN_VIEW);

return view;

}

XML:

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

最佳答案

动态声明您的 fragment 将解决问题。

<FrameLayout
android:id="@+id/fragment_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>

并在 CreateView 上更新你的 fragment

SupportPlaceAutocompleteFragment autocompleteFragment = new SupportPlaceAutocompleteFragment();
android.support.v4.app.FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, autocompleteFragment);
ft.commit();

关于android - 如何在 fragment 中使用 PlaceAutoCompleteFragment 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41345987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com