【发布时间】:2017-07-15 20:09:00
【问题描述】:
我有选项卡活动,我想在第一个选项卡中显示地图片段。 我的问题是我不知道该怎么做。 我有扩展 supportMapFragment 的地图片段,但我仍然不知道如何在选项卡中显示该片段。
这是主要的活动标签
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();
}
}
编辑 地图活动
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();
}
}
}
【问题讨论】:
-
发布您的地图片段
-
我已经发布了我的 mapActivity
标签: android android-fragments tabs android-maps-v2