Как использовать Google Map Api2 вместе с другими фрагментами в приложении

Пытаюсь создать и приложение с одним действием, но несколькими фрагментами. я использую android.support.v4.* для создания фрагмента. Каждый элемент, который я создал до сих пор путем расширения фрагмента, я хочу использовать Google Map Api2 в своем приложении,

Все учебники, которые я нашел, добавили "SupportMapFragment" как элемент в файл макета.

"<fragment
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>"

Но я не могу использовать этот способ, потому что вложенный фрагмент не поддерживает, как я могу использовать карту Google Api2 в качестве фрагмента в моем приложении

используйте вид карты, как предложено в комментариях

 public class InteractiveMapsWidget extends Fragment {
        private MapView mMapView;
        private GoogleMap mMap;

     public void onCreate(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            Log.i(TAG, "ON CREATED");
            Activity activity = getActivity();
            if (activity != null) {
                Bundle bundle = getArguments();
    `
            }
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)     {
            Log.i(TAG, "onCreateView");
            new DataWorkerAsyncTask(getActivity()).execute(widgetId);
            mMapView = (MapView) view.findViewById(R.id.map);
            mMapView.onCreate(savedInstanceState);
            setUpMapIfNeeded();

            return view;
        }


        @Override
        public void onResume() {
            super.onResume();
            mMapView.onResume();

            setUpMapIfNeeded();
        }

        private void setUpMapIfNeeded() {
            if (mMap == null) {
                mMap = ((MapView) view.findViewById(R.id.map)).getMap();
                if (mMap != null) {
                    setUpMap();
                }
            }
        }

        private void setUpMap() {
            mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
        }

        @Override
        public void onPause() {
            mMapView.onPause();
            super.onPause();
        }

        @Override
        public void onDestroy() {
            mMapView.onDestroy();
            super.onDestroy();
        }

        @Override
        public void onLowMemory() {
            super.onLowMemory();
            mMapView.onLowMemory();
        }

        @Override
        public void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
        }
    }

раскладка

<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/root_container"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        <com.google.android.gms.maps.MapView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>

</LinearLayout>

0 ответов