我正在使用Google地图创建一个简单的Android应用。 我有这个布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/root"
android:background="@android:color/transparent">
<fragment
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map2"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
map:cameraBearing="112.5"
map:cameraTargetLat="45.438122"
map:cameraTargetLng="12.318221"
map:cameraTilt="30"
map:cameraZoom="18"
map:mapType="normal"
map:uiCompass="false"
map:uiRotateGestures="true"
map:uiScrollGestures="true"
map:uiTiltGestures="false"
map:uiZoomControls="true"
map:uiZoomGestures="true"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/map"
android:layout_gravity="left|top"
android:layout_alignParentLeft="false"
android:layout_alignParentTop="false"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" />
</FrameLayout>
AndroidStudio告诉我:
Unexpected namespace prefix "map" found for tag fragment
并且如果代码对我来说似乎也可以将带有“map”前缀的所有行标记为错误。 事实上部署我的应用程序,我可以看到所有地图标签都在我的Android设备上运行。
所以我问这是否只是AndroidStudio的一个小错误。
有点好奇:使用此布局而不是AndroidStudio不会标记任何错误:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
map:cameraBearing="112.5"
map:cameraTargetLat="45.438122"
map:cameraTargetLng="12.318221"
map:cameraTilt="30"
map:cameraZoom="18"
map:mapType="normal"
map:uiCompass="false"
map:uiRotateGestures="true"
map:uiScrollGestures="true"
map:uiTiltGestures="false"
map:uiZoomControls="true"
map:uiZoomGestures="true"
/>
答案 0 :(得分:0)
xmlns:map="http://schemas.android.com/apk/res-auto"
元素中的<FrameLayout>
名称空间声明似乎不会向下传入<fragment>
命名空间。您的第二个示例在使用它的元素(<fragment>
)中具有名称空间声明,Android Studio会立即识别它。