猿问

inflateException:二进制XML文件行#8:错误膨胀类片段

inflateException:二进制XML文件行#8:错误膨胀类片段

我正在用NavigationDrawerE.DrawerLayout航行到不同的地方Fragments..当我打电话给Map_Fragment_Page应用程序崩溃,但不是第一次。它第一次显示Map正确,但在那之后,当我浏览不同的片段,并再次来到Map_Fragment_Page然后它就会崩溃,产生一个错误。android.view.InflateException: Binary XML file line #8: Error inflating class fragment

我尝试了很多不同的解决方案Google但仍然得不到所需的解决方案。这个问题还没有解决。

howtoreach.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment
        android:id="@+id/howtoreach_map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment"/></RelativeLayout>


Cats萌萌
浏览 328回答 3
3回答

人到中年有点甜

所以如果它在第二次打开片段后崩溃。你所需要的就是这个@Overridepublic&nbsp;void&nbsp;onDestroy()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;super.onDestroy(); &nbsp;&nbsp;&nbsp;&nbsp;getFragmentManager().beginTransaction().remove(mapfragmentnamehere).commit();}如果使用支持片段,则进行所需的更改

Helenr

我的经验是使用xml-tag添加的片段。<fragment>...</fragment>.这些片段通常是嵌套的,在父片段被销毁时不销毁。一旦你试图再次膨胀它们,你就会得到一个异常,它基本上会抱怨这个片段已经膨胀了。因此,一旦父片段被销毁,我就手动销毁我的嵌套片段。只需使用下面的片段,并调整它以满足您的需要。此代码驻留在父片段中,其父片段的嵌套片段作为xml-标记。@Overridepublic&nbsp;void&nbsp;onDestroy()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;super.onDestroy(); &nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;FragmentManager&nbsp;fragManager&nbsp;=&nbsp;this.getFragmentManager(); &nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;Fragment&nbsp;fragment&nbsp;=&nbsp;fragManager.findFragmentById(/*id&nbsp;of&nbsp;fragment*/); &nbsp;&nbsp;&nbsp;&nbsp;if(fragment!=null){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fragManager.beginTransaction().remove(fragment).commit(); &nbsp;&nbsp;&nbsp;&nbsp;}}对于动态创建的片段,根本不存在任何问题。动态意思是:您没有使用任何片段xml标记。希望这能帮上忙!好的程序!
随时随地看视频慕课网APP

相关分类

Android
我要回答