Я пробовал так много разных решений, и я также искал в Google, но до сих пор не получил требуемого решения. Проблема еще не установлена. У меня есть ViewPager с некоторыми фрагментами. В первом фрагменте я хочу использовать Google Map API v2 для отображения текущего местоположения устройства. Он отлично работает, если я использую текущие значения широты/долготы и масштабирую его. Каков наилучший способ узнать текущую широту и долготу текущее местоположение в Фрагменте (NOT FragmentActivity or Activity)? Я просто хочу знать, возможно ли это во Фрагменте? Сообщите мне, пожалуйста, если у кого-то была такая же проблема и она была решена!Показать текущее местоположение устройства Google Map (Фрагмент)
Спасибо за помощь!
Здесь ниже код, который я использовал для установки карты:
fragment.xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map_container">
<!-- The map fragments will go here -->
</RelativeLayout>
MainFragment.java
public class MainFragment extends Fragment{
private SupportMapFragment mSupportMapFragment;
private GoogleMap mGoogleMap;
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager mFragmentManager = getChildFragmentManager();
mSupportMapFragment = (SupportMapFragment) mFragmentManager.findFragmentById(R.id.map_container);
if (mSupportMapFragment == null) {
mSupportMapFragment = SupportMapFragment.newInstance();
mFragmentManager.beginTransaction().replace(R.id.map_container, mSupportMapFragment).commit();
}
}
@Override
public void onResume(){
if(mGoogleMap==null){
mGoogleMap = mSupportMapFragment.getMap();
//Set the marker
mGoogleMap.addMarker(new MarkerOptions()
.position(new LatLng(???))
.title("Location")
.snippet("Your current location"));
// Move the camera and zoom it to location
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(???), 15));
}
}
@Override
public void onDetach() {
super.onDetach();
try {
Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}
его возможно в разделе «Фрагмент» ... вы можете показать свой XML? –
Можете ли вы проверить сообщение внимательно. Я добавил xml. –
Почему это имеет значение, если вы делаете это в Фрагменте или Деятельности? Я не понимаю, что такое непредвиденное обстоятельство ... –