我有一个问题,SupportMapFragment并将相机移动到地图上的某个位置.
public class MapPositionFragment extends SupportMapFragment implements LocationListener{
private GoogleMap map = null;
private Button lockButton = null;
private Location currentLocation = null;
private LocationManager locationManager = null;
private View mapView = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mapView = super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.fragment_route_map, container, false);
SetUpMap(v);
return v;
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
if (isVisibleToUser){ …Run Code Online (Sandbox Code Playgroud) android map android-viewpager google-maps-android-api-2 supportmapfragment
我需要嵌入SupportMapFragment一个Dialog.这是我能想到的最好的:
public class SupportMapFragmentDialog extends DialogFragment {
private final SupportMapFragment fragment;
public SupportMapFragmentDialog() {
fragment = new SupportMapFragment();
setTargetFragment(fragment, 1);
}
@Override
public View onCreateView(final LayoutInflater inflater,
final ViewGroup container, final Bundle savedInstanceState) {
return fragment.onCreateView(inflater, container, savedInstanceState);
}
public SupportMapFragment getFragment() {
return fragment;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样称呼时:
final SupportMapFragmentDialog dialog = new SupportMapFragmentDialog();
dialog.show(getSupportFragmentManager(), "Historico");
Run Code Online (Sandbox Code Playgroud)
我明白了:

如何在Dialog上查看地图?
该应用程序有另一个SupportMapFragment工作奇迹,所以它与配置没有任何关系.
SupportMapFragment和MapFragment之间有什么区别吗?在参考文献中,它表示您应该只在使用Android API级别12及更高级别时使用MapFragment,但是还有其他差异吗?其中一个更快吗?
performance android mapfragment supportmapfragment difference
嘻嘻
我一直在寻找几个小时,尝试了不同的东西,其中大部分已经包括在内.我希望你们能帮助我显然没有看到的东西.
我在我的片段中有一个SupportMapFragment用于Maps.我以前有这个工作,但由于某种原因它现在崩溃与nullpointer.在搜索了几个小时并阅读了更多文档后,我发现我使用了一种不推荐的方式,因此我尝试使用建议的文件:onMapReady.但是,即使我正在使用它也无法识别该功能
com.google.android.gms.maps.SupportMapFragment
Run Code Online (Sandbox Code Playgroud)
这是我的片段xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frameLayoutMainAct"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<fragment
android:id="@+id/mapView"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<View
android:id="@+id/map_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
这是从OnViewCreated开始的代码:
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if(GooglePlayServicesUtil.isGooglePlayServicesAvailable(MainActivity.getContext()) == ConnectionResult.SUCCESS) {
initMap();
if (locations != null) {
addMarkers();
}
moveMapToCuracao();
}
}
public void initMap() {
final SupportMapFragment myMAPF = (SupportMapFragment) getFragmentManager()
.findFragmentById(mapView);
myMAPF.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
mGoogleMap = googleMap;
mGoogleMap.setPadding(50, 0, 0, 0);
mGoogleMap.getUiSettings().setMyLocationButtonEnabled(false);
mGoogleMap.setMyLocationEnabled(true);
mGoogleMap …Run Code Online (Sandbox Code Playgroud) 我开发了一个带有谷歌地图和导航抽屉的应用程序.当我启动应用程序时,将显示地图,用户可以打开导航抽屉.
当用户点击导航抽屉中的第一个项目时,地图应该显示,以防他之前切换到另一个片段.但是,当我调用地图片段时,我的应用程序崩溃了以下错误代码:java.lang.IllegalStateException: Can't change container ID of fragment SupportMapFragment{36a7826b #0 id=0x7f0e007a}: was 2131624058 now 2131624057
我在导航抽屉中onItemClick显示的地图是:
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, supportMapFragment)
.addToBackStack(null)
.commit();
Run Code Online (Sandbox Code Playgroud)
它适用于其他片段,但不适用于地图片段.地图片段在xml中进行硬编码,从头开始显示,并在onCreate方法中实例化,如下所示:supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
我所有其他片段都通过调用实例化,new MyFragment();并且它们可以扩展Fragment.
关于如何修复崩溃和显示地图的任何建议和提示都非常感谢.
我正在尝试将谷歌地图活动转换为在将在NavigationView中调用的片段内部工作.地图显示但是当我使用代码时getMapAsync
mFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
mFragment.getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)
我收到了一条错误消息
E/AndroidRuntime: FATAL EXCEPTION: main
E/AndroidRuntime: java.lang.NullPointerException
E/AndroidRuntime: at com.sample.samplemap.samplemapFragment.onCreate(samplemapFragment.java:32)
E/AndroidRuntime: at android.support.v4.app.Fragment.performCreate(Fragment.java:1942)
E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1040)
E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
E/AndroidRuntime: at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:725)
E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime: at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5306)
E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
samplemapFragment.java
package com.sample.samplemap;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.GoogleMap;
import …Run Code Online (Sandbox Code Playgroud) 我正在尝试实施Google地图显示,下面是我的代码:
package com.fragments;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
public class MapFragment extends SherlockMapFragment {
private GoogleMap mMap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = super.onCreateView(inflater, container, savedInstanceState);
SupportMapFragment mapFrag= (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.fragment_map);
mMap = mapFrag.getMap();
return root;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,getSupportFragmentManager()未定义类型MapFragment.但是我有点困惑,因为我导入了com.google.android.gms.maps.SupportMapFragment.那个方法不应该来自那里吗?我错过了让这种方法起作用的一些步骤吗?
我想制作一个使用Google Maps for Android v2的Android应用程序.
我可以展示一张地图.我甚至可以导航和缩放.但是,当我想搜索更多的操作时,我找不到任何操作.
我希望此应用程序能够在API级别8及更高级别上运行.所以,我用过SupportMapFragment.我听说,如果我想让我的应用程序在API级别8及更高级别上工作,我必须使用SupporMapFragment.
我找到了关于MapFragments的例子,但不幸的是,没有SupportMapFragment.
我想让这些操作在我的应用程序中工作,但是,他们正在使用MapFragment:
有没有办法做一些事情,比如"添加标记","显示我当前的位置",以及"获取我点击的点的位置"?(SupportMapFragment当然使用.)
非常感谢你.
我有: 主要活动
fragment = new ListReportsFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content, fragment).commit();
Run Code Online (Sandbox Code Playgroud)
通过这个简单的代码,我调用了一个扩展自的片段SupportMapFragment
我的片段
public class MyFragment extends SupportMapFragment {
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
MainActivity main = (MainActivity) getParentFragment().getActivity()
}
}
Run Code Online (Sandbox Code Playgroud)
但 的值main始终是null。我如何发送或获取MainActivity?
我想创建一个具有缩放设置、标记和地图类型设置的自定义地图片段,以便我可以在多个活动中重复使用它。我创建的类称为“LiteMap”。
\n\n我从编译器处收到错误 \n \'Incompatible Types\' \'Required: com.mypackage.LiteMap\' \'Found com.google.android.gms.maps.SupportMapFragment\'\n我调用.newInstance. 我假设.newInstance返回父类而不是我的类,但我不确定如何在我的类中重写以返回我的“LiteMap”对象。
作为替代方案,我尝试使用 new 实例化我的地图对象,并且在没有任何特定行作为源的情况下收到以下错误,但似乎使用 new 并没有创建 LiteMap 对象。我想做的事情是不可能的还是愚蠢的做法?
\n\n03-29 20:36:52.771 11326-11326/com.tremulant.phield E/AndroidRuntime: FATAL EXCEPTION: main\n Process: com.tremulant.phield, PID: 11326\n java.lang.RuntimeException: Unable to resume activity {com.tremulant.phield/com.tremulant.phield.ReviewDetails}: java.lang.NullPointerException: Attempt to invoke interface method \'void maps.ei.bz.o()\' on a null object reference\n at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2974)\n at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3005)\n at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2371)\n at android.app.ActivityThread.access$800(ActivityThread.java:149)\n at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)\n at android.os.Handler.dispatchMessage(Handler.java:102)\n at android.os.Looper.loop(Looper.java:135)\n at android.app.ActivityThread.main(ActivityThread.java:5290)\n at java.lang.reflect.Method.invoke(Native Method)\n at java.lang.reflect.Method.invoke(Method.java:372)\n at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)\n at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)\n …Run Code Online (Sandbox Code Playgroud) android ×10
google-maps ×2
dialog ×1
difference ×1
fragment ×1
java ×1
map ×1
mapfragment ×1
performance ×1