I am creating an app, and it has a bottom navigation bar. One of the pages I am going to use for a map with the current location. The following shows my code so far for that page. Can this code be changed so that when entering the page, the current location is received first ?
This is the code in the MapsFragment.java file.
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsFragment extends Fragment {
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
private String mParam1;
private String mParam2;
public MapsFragment() {
// Required empty public constructor
}
public static MapsFragment newInstance(String param1, String param2) {
MapsFragment fragment = new MapsFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Initialize view
View view=inflater.inflate(R.layout.fragment_maps, container, false);
// Initialize map fragment
SupportMapFragment supportMapFragment=(SupportMapFragment)
getChildFragmentManager().findFragmentById(R.id.google_map);
// Async map
supportMapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
// When map is loaded
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
// When clicked on map
// Initialize marker options
MarkerOptions markerOptions=new MarkerOptions();
// Set position of marker
markerOptions.position(latLng);
// Set title of marker
markerOptions.title(latLng.latitude+" : "+latLng.longitude);
// Remove all marker
googleMap.clear();
// Animating to zoom the marker
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,10));
// Add marker on map
googleMap.addMarker(markerOptions);
}
});
}
});
return view;
}
}