Android Google地图上的Xml属性不适用于Android Studio

时间:2013-09-07 08:46:38

标签: android google-maps android-studio

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

1 个答案:

答案 0 :(得分:0)

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