我正在尝试使用android地图来定位指定的地址。我能够第一次成功地在地图上找到并标记地址。但是当我尝试找到另一个地址时,它会在片段中抛出异常:
二进制XML文件行#1:错误扩充类片段
axml布局:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myMap"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
问题是当第二次更换片段以找到新地址时,android无法从axml中膨胀。它在网上崩溃了:
view = inflater.Inflate(Resource.Layout.map_layout, null);
我浏览了这些链接,但可以找到解决方案:
Android map v2 error on second inflating
Android - SupportMapFragment error when openning for second time
https://forums.xamarin.com/discussion/7378/google-maps-wont-work-error-on-fragmenttransaction
我也尝试使用SupportMapFragment
,行为相同。
答案 0 :(得分:1)
最后,经过大量搜索,我找到了解决方案。我没有使用MapFragment,而是使用了MapView。以下是我的代码:
axml布局:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myMap"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapView" />
片段代码:
public class MapViewFragment : Android.Support.V4.App.Fragment, IOnMapReadyCallback
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate(Resource.Layout.map_layout, null);
// Now this line works fine without throwing Inflate Exception
}
}