标签: supportmapfragment

使用ViewPager的SupportMapFragment:无法移动相机或更改地图设置

我有一个问题,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

4
推荐指数
1
解决办法
2486
查看次数

DialogFragment上的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工作奇迹,所以它与配置没有任何关系.

android dialog google-maps-android-api-2 supportmapfragment

4
推荐指数
1
解决办法
5192
查看次数

SupportMapFragment vs MapFragment在性能方面

SupportMapFragmentMapFragment之间有什么区别吗?在参考文献中,它表示您应该只在使用Android API级别12及更高级别时使用MapFragment,但是还有其他差异吗?其中一个更快吗?

performance android mapfragment supportmapfragment difference

4
推荐指数
1
解决办法
2153
查看次数

SupportMapFragment和onMapReady

嘻嘻

我一直在寻找几个小时,尝试了不同的东西,其中大部分已经包括在内.我希望你们能帮助我显然没有看到的东西.

我在我的片段中有一个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)

android google-maps supportmapfragment

4
推荐指数
1
解决办法
7251
查看次数

无法更改片段SupportMapFragment的容器ID

我开发了一个带有谷歌地图和导航抽屉的应用程序.当我启动应用程序时,将显示地图,用户可以打开导航抽屉.

当用户点击导航抽屉中的第一个项目时,地图应该显示,以防他之前切换到另一个片段.但是,当我调用地图片段时,我的应用程序崩溃了以下错误代码: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.

关于如何修复崩溃和显示地图的任何建议和提示都非常感谢.

android android-fragments supportmapfragment

4
推荐指数
1
解决办法
3068
查看次数

谷歌地图在另一个片段内 - 调用getMapAsync时出错

我正在尝试将谷歌地图活动转换为在将在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)

android google-maps android-fragments supportmapfragment

4
推荐指数
1
解决办法
2084
查看次数

对于MapFragment类型,未定义getSupportFragmentManager()方法

我正在尝试实施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.那个方法不应该来自那里吗?我错过了让这种方法起作用的一些步骤吗?

android supportmapfragment android-maps-v2

3
推荐指数
1
解决办法
6512
查看次数

SupportMapFragment而不是MapFragment

我想制作一个使用Google Maps for Android v2的Android应用程序.

我可以展示一张地图.我甚至可以导航和缩放.但是,当我想搜索更多的操作时,我找不到任何操作.

我希望此应用程序能够在API级别8及更高级别上运行.所以,我用过SupportMapFragment.我听说,如果我想让我的应用程序在API级别8及更高级别上工作,我必须使用SupporMapFragment.

我找到了关于MapFragments的例子,但不幸的是,没有SupportMapFragment.

我想让这些操作在我的应用程序中工作,但是,他们正在使用MapFragment:

有没有办法做一些事情,比如"添加标记","显示我当前的位置",以及"获取我点击的点的位置"?(SupportMapFragment当然使用.)

非常感谢你.

android google-maps-android-api-2 supportmapfragment

3
推荐指数
1
解决办法
5624
查看次数

如何从 SupportMapFragment 获取片段扩展中的主 Activity

我有: 主要活动

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

android android-fragments supportmapfragment

2
推荐指数
1
解决办法
8939
查看次数

如何在 Android Studio 中扩展 SupportMapFragment?

我想创建一个具有缩放设置、标记和地图类型设置的自定义地图片段,以便我可以在多个活动中重复使用它。我创建的类称为“LiteMap”。

\n\n

我从编译器处收到错误 \n \'Incompatible Types\' \'Required: com.mypackage.LiteMap\' \'Found com.google.android.gms.maps.SupportMapFragment\'\n我调用.newInstance. 我假设.newInstance返回父类而不是我的类,但我不确定如何在我的类中重写以返回我的“LiteMap”对象。

\n\n

作为替代方案,我尝试使用 new 实例化我的地图对象,并且在没有任何特定行作为源的情况下收到以下错误,但似乎使用 new 并没有创建 LiteMap 对象。我想做的事情是不可能的还是愚蠢的做法?

\n\n
03-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)

java android fragment google-maps-api-3 supportmapfragment

2
推荐指数
1
解决办法
2676
查看次数