gpt4 book ai didi

Android SupportMapFragment inside Fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:49:35 24 4
gpt4 key购买 nike

我正在尝试在 fragment 中使用 SupportMapFragment。第一次启动时, map 显示没有任何错误。

但是当我对另一个 fragment 执行事务,然后返回到 map 时,我有一个错误膨胀 fragment 。但是当我创建包含 map 的 fragment 的新实例时,我没有任何错误。

这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
tools:context=".ui.HomeMapFragment">

<fragment
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/footer"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:name="com.google.android.gms.maps.SupportMapFragment" />

<FrameLayout
android:id="@+id/footer"
android:layout_height="110dp"
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@color/colorPrimary"/>

</RelativeLayout>

然后我在 onCreateView 中实例化我的 SupportMapFragment,如下所示:

 //Instantiate the map fragment
mHolder.supportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);

然后我在 onActivityCreated 中调用 onMapReady :

if (mHolder.supportMapFragment != null)
mHolder.supportMapFragment.getMapAsync(this);

错误日志:

    FATAL EXCEPTION: 
main Process: xxx.xxxx.xxxx, PID: 4441
android.view.InflateException: Binary XML file line #8: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at xxx.xxxx.xxxx.ui.HomeMapFragment.onCreateView(HomeMapFragment.java:234)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:971)
at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1670)
at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:586)
at android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:189)
at com.xxx.xxx.ui.HomeActivity.onBackPressed(HomeActivity.java:71)

我知道在 fragment 布局中对 fragment 进行硬编码不是一件好事,但我已经尝试使用 frameLayout 执行此操作,但我遇到了更多错误

最佳答案

2017 年的作品(Kotlin):

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

val mapFragment = childFragmentManager.findFragmentById((R.id.map)) as SupportMapFragment
mapFragment.getMapAsync(this)
}

关于Android SupportMapFragment inside Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36618154/

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