Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I have faced the same issue but finally i managed it in this way.</p> <p>First of all i create separate MyMapFragment class which extends android.support.v4.app.Fragment</p> <p>here is the onCreateView method</p> <pre><code>if (view != null) { ViewGroup parent = (ViewGroup) view.getParent(); if (parent != null) parent.removeView(view); } try { view = (ViewGroup) inflater.inflate(R.layout.map_frag, container, false); setUpMapIfNeeded(); showMap(maptype); } catch (Exception e) { } return view; </code></pre> <p>after that i create one xml file </p> <pre><code>&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_fragmentView" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" &gt; &lt;/LinearLayout&gt; </code></pre> <p>You can add this layout file into your map layout place</p> <p>and finally you have to add map view using this one in your activty class</p> <pre><code>MyMapFragment newFragment = new MyMapFragment (1); FragmentTransaction transaction = getActivity() .getSupportFragmentManager().beginTransaction(); transaction.add(R.id.my_fragmentView, newFragment); transaction.commit(); </code></pre> <p>It's working fine at my side i hope it helps you.</p> <p><strong>MapFragment Code is here</strong></p> <pre><code>public class MapFragment extends Fragment { private View view; private GoogleMap mMapView; public TouchableWrapper mTouchView; LinearLayout map_fragg; String userLat, userLon; int maptype = 1; Marker lastMarker = null; public MapFragment() { } public MapFragment(int maptype) { this.maptype = maptype; } @Override public void onAttach(Activity activity) { super.onAttach(activity); getView(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == null) { return null; } if (view != null) { ViewGroup parent = (ViewGroup) view.getParent(); if (parent != null) parent.removeView(view); if (mTouchView != null) { mTouchView.removeAllViews(); } } try { mTouchView = new TouchableWrapper(getActivity()); view = (ViewGroup) inflater.inflate(R.layout.map_frag, null, false); view.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); map_fragg = (LinearLayout) view.findViewById(R.id.map_fragg); mTouchView.addView(view); setUpMapIfNeeded(); } catch (Exception e) { e.printStackTrace(); } return mTouchView; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } private void showMap(int maptype) { switch (maptype) { case 1: setMapX(); break; case 2: setMapXX(); break; case 3: setUpMapXXX(); break; default: break; } } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } private void setUpMapIfNeeded() { // Do a null check to confirm that we have not already instantiated the // map. if (mMapView == null) { // Try to obtain the map from the SupportMapFragment. mMapView = ((SupportMapFragment) getActivity() .getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); // Check if we were successful in obtaining the map. if (mMapView != null) { setUpMap(); showMap(maptype); } } } private void setUpMap() { mMapView.setMyLocationEnabled(true); } // Setting up map for MyProfile Page private void setMapX() { // Your Code for adding Markers } // Setting up map for MyProfile Page private void setMapXX() { // Your Code for adding markers } public class TouchableWrapper extends FrameLayout { public TouchableWrapper(Context context) { super(context); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: this.getParent().requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: this.getParent().requestDisallowInterceptTouchEvent(false); break; } return super.dispatchTouchEvent(ev); } } @Override public void onStop() { super.onStop(); try { SupportMapFragment f = (SupportMapFragment) getFragmentManager() .findFragmentById(R.id.map); if (f != null) getFragmentManager().beginTransaction().remove(f).commit(); } catch (Exception e) { e.printStackTrace(); } } @Override public void onDestroyView() { super.onDestroyView(); } @Override public View getView() { if (view != null) { return view; } return super.getView(); } private void setUpMapXXX() { // Your Code for adding Markers } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload