-1
J'ai l'activité de l'onglet et dans le premier onglet je veux montrer un fragment de la carte. mon problème est que je ne sais pas comment faire cela. J'ai un fragment de carte qui étend supportMapFragment, mais je ne sais toujours pas comment afficher ce fragment dans l'onglet.Android - comment montrer la carteFragment dans l'action de l'onglet
c'est l'onglet principal d'activité
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
switch (position) {
case 0:
// here i want to show the mapFragment. how should i do that?
return new Maps();
case 1:
return new GroupsFragment();
default:
return new Fragment();
}
}
EDIT MapActivity
public class MapsActivity extends SupportMapFragment implements OnMapReadyCallback {
private static final int RC_LOCATION = 1;
private GoogleMap mMap;
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
addMyLocation();
}
private boolean checkLocationPermission(){
String[] permissions = new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};
//If No Permission-> Request the permission and return false.
if (ActivityCompat.checkSelfPermission(getContext(),
android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(), permissions, RC_LOCATION);
return false;
}
return true;//return true if we have a permission
}
private void addMyLocation(){
if (!checkLocationPermission())return;
mMap.setMyLocationEnabled(true);
mMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick() {
if (mMap.getMyLocation()!=null) {
Location myLocation = mMap.getMyLocation();
Toast.makeText(getActivity(), "" + myLocation.getLatitude(), Toast.LENGTH_SHORT).show();
}
return false;
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults[0] == PackageManager.PERMISSION_GRANTED){
//noinspection MissingPermission
addMyLocation();
}
}
}
Affichez votre fragment Maps – FAT
J'ai publié ma carteActivité –