1

私は検索して検索しましたが、誰もそれに完全に答えません。

Android プロジェクトの多数のフラグメントの 1 つで新しい MapFragment を使用する必要があるプロジェクトがあります。

これまでのところ、FB モバイル アプリのように使用しています。左側にメニューが表示され、ユーザーはアイテムを選択してフラグメントを表示できます。ここまで、探して探しました。完全で実行可能な答えはありません。

Android アプリの多くのフラグメントのフラグメント内に新しい Google MapFragment を表示できるサンプル コードやサンプル プロジェクトを見たいと思っています。

前もって感謝します。

4

2 に答える 2

0

SupportMapFragmentの追加はプログラムで機能します。フラグメントの実装では:

...
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
...

@Override
public void onStart() {
    super.onStart();

    // add fragment 
    mMapFragment = SupportMapFragment.newInstance();
    FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
    fragmentTransaction.add(R.id.game_map_container, mMapFragment);
    fragmentTransaction.commit();

    // add a marker
    map = mMapFragment.getMap();

    if (map != null) {
        // The Map is verified. It is now safe to manipulate the map.
        map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
        map.addMarker(new MarkerOptions().position(target));
        map.setMyLocationEnabled(true);
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(target, 10));
    } else {
        Log.e(TAG, "map is not available");
    }
}

実際、このアイデアは、MapsAPIv2を使用してプログラムでMapFragmentを初期化することから盗まれます。

于 2012-12-24T08:14:14.813 に答える
0

getChildFragmentManager() についていくつか調査したところ、IMPORT android.app.Fragment などを使用する代わりに、IMPORT android.support.v4.app.Fragment などを使用する必要があります。

必ずしもそうとは限りませんが、API レベル 17 でgetChildFragmentManager()ネイティブFragment実装に追加されただけです。

SupportMapFragmentAndroid サポート パッケージのフラグメントのバックポートと一緒に使用することを歓迎します。getChildFragmentManager()これにより、Maps V2 で使用できるようになります。

于 2012-12-11T16:21:35.480 に答える