1

xmlファイルでMapFragmentを初期化する際に問題が発生しましたが、ある方法で機能し、別の方法では機能しない理由がわかりません。

開発中、私は最初、メインのアクティビティにMapFragmentしかありませんでした。そして、これはうまくいきました:

<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:cameraTargetLat="22.320542"
map:cameraTargetLng="114.185715"
map:mapType="normal"
map:cameraZoom="11"
/>

それは私の地図を開き、適切なズームレベルで香港に焦点を合わせました。ただし、レイアウトにいくつかの要素を追加しましたmap:。名前空間を使用できなくなりました。Eclipseによって拒否されます。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

<ProgressBar
    android:id="@+id/progressBar1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<TableLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/current" />

        <TextView
            android:id="@+id/textCurrent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/forecast" />

        <TextView
            android:id="@+id/textForecast"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </TableRow>
</TableLayout>

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

ここここのように、コードからマップオプションを設定する方法をすでに見つけました。これは、ここでは実際には問題ではありません。それは私がそれを解決したいと思っている方法ではありませんが、それは受け入れられます。私は主に2番目の方法が機能しない理由を理解しようとしていますか?マップの名前空間は、xml全体に明らかに存在するAndroidの名前空間とともに最初に宣言されます。

4

2 に答える 2

3

これはツールのバグのようです。私はそれについて問題を提出しました。あなたはそれをスターするか、そうでなければそれが本当にバグであるかどうか、それが修正されるかどうかなどを確認するためにそれを追跡するように手配したいかもしれません。

于 2013-03-16T16:26:14.617 に答える
0

Eclipseのバグのようです-プロジェクトをクリーンアップして再構築することで解決しました。

于 2013-09-16T18:15:57.283 に答える