6

我正在使用 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"
/>
4

1 回答 1

0

xmlns:map="http://schemas.android.com/apk/res-auto"您的元素中的命名空间声明似乎<FrameLayout>没有向下进入<fragment>命名空间。您的第二个示例在使用它的元素中具有命名空间声明 ( <fragment>),Android Studio 会立即识别它。

于 2017-01-10T00:05:34.550 回答