如何在Fragment中实现Google Maps并使用GoogleMap对象?

罗塞尔霍夫

如何在片段中实现GoogleMap?

我正在尝试开发相同的东西,但无法执行getMap(),因为SupportMapFragment(执行该行时(SupportMapFragment)getActivity()。getSupportFragmentManager()。findFragmentById(.R.id.map))返回一个空对象。

我试过扩展MapFragment和SupportMapFragment而不是Fragment,但是它们没有用...

我只是不想创建一个新的活动来显示地图:我只想显示一个Map而不是我的主要活动。我可以实现我的目标吗?

我有一个扩展ActionBarActivity的主要活动,该活动替换了容器内的片段(取决于用户在抽屉上的选择,X或Y片段将被替换并显示)。我拥有2个可工作的片段,但无法实现操作片段内部的GoogleMap对象的目标。

那就是我的mapa.xml

<?xml version="1.0" encoding="utf-8"?>
<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mapaPrincipal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />

那是我的FragmentMapa类:

  import com.google.android.gms.maps.GoogleMap;
   import com.google.android.gms.maps.SupportMapFragment;
   import com.ingartek.bizkaimove.R;

   import android.app.Activity;
   import android.os.Bundle;
   import android.support.v4.app.Fragment;
   import android.view.LayoutInflater;
   import android.view.View;
   import android.view.ViewGroup;

 public class FragmentMapa extends Fragment {

private GoogleMap mMapa;
    
public FragmentMapa() {
    // TODO Auto-generated constructor stub
}

@Override
public void onAttach (Activity activity) {
    super.onAttach(activity);
}

@Override
public void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
}

@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
    View rootView = inflater.inflate(R.layout.mapa, container, false);
    
    mMapa = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.mapaPrincipal)).getMap();      
    
    return rootView;
    
}

高亮显示的行不起作用,因为SupportMapFragment对象为null,因此getMap()崩溃。

有什么帮助吗?提前致谢。

解决我的问题

对于遇到像我的问题的任何人:您不应使用getSupportFragmentManager(),而应使用getChildFragmentManager()。这应该保持这种方式:

@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
    View rootView = inflater.inflate(R.layout.mapa, container, false);
    
    setupMapIfNeeded();
    
    return rootView;
    
}

private void setupMapIfNeeded() {

    if( mMapa == null ){
        SupportMapFragment smf = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapaPrincipal);
    
        if( smf != null ){
            Toast.makeText(getActivity(), "Let's go!!", Toast.LENGTH_SHORT).show();
            mMapa = smf.getMap();
        }else{
            Toast.makeText(getActivity(), "SMF is null...", Toast.LENGTH_SHORT).show();
        }
        
        if( mMapa != null ){
            
            setupMap();
            
        }
    
    }
    
}

private void setupMap() {
    // TODO Auto-generated method stub
    Toast.makeText(getActivity(), "Configure the map", Toast.LENGTH_SHORT).show();
}
用户名

嗨,你可以在这里参考我的答案

你需要这样打...

SupportMapFragment  fragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapaPrincipal);

mMapa = fragment.getMap();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 angular agm 库中获取 googleMap 对象以与 google HeatMap 一起使用?

来自分类Dev

如何在Xamarin中实现Google Maps的标记集群

来自分类Dev

如何在Xamarin中实现Google Maps的标记集群

来自分类Dev

com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)”上的空对象引用

来自分类Dev

如何在Android上的GoogleMap中修复com.google.android.gms.maps.model.Marker com.google.android.gms.maps.GoogleMap.addMarker

来自分类Dev

尝试在空对象引用上调用虚拟方法“ void com.google.android.gms.maps.GoogleMap.setOnMapLongClickListener”

来自分类Dev

如何在React Native Android中实现Google Map(React-Native-Maps)

来自分类Dev

如何在Android中以最佳的向后兼容性实现Google Maps?

来自分类Dev

如何使用react-google-maps将GoogleMap React组件重新居中到新地址?

来自分类Dev

如何在Screeps对象中实现继承?

来自分类Dev

使用Fragment内的MapView对象与Fragment中的MapFragment在Google Maps v2中有什么优点/缺点?

来自分类Dev

使用JQuery获取Google Maps对象的实例

来自分类Dev

使用AngularJS在Google Maps中实现标记

来自分类Dev

如何在我的Android应用程序中实现和使用Google Cloud SQL(Eclipse)

来自分类Dev

如何使用React Google Maps API访问Map对象?

来自分类Dev

如何在Google Maps中显示地图?

来自分类Dev

如何在泛型中实现空对象模式?

来自分类Dev

OpenMP:如何在任务中实现线程本地对象?

来自分类Dev

如何在Kotlin中实现对象的不同状态?

来自分类Dev

如何在OrbitControls中实现围绕对象的完整垂直旋转?

来自分类Dev

trait 对象是如何在 Rust 中实现的?

来自分类Dev

如何在<Fragment> React中使用Promise中的数据

来自分类Dev

如何在<Fragment> React中使用Promise中的数据

来自分类Dev

如何在Android中的Fragment上使用OnClickListener

来自分类Dev

如何在片段内获取Google Maps对象

来自分类Dev

如何在python中使用multiprocessing.Pool.map实现对象中的功能?

来自分类Dev

如何在python中使用multiprocessing.Pool.map实现对象中的功能?

来自分类Dev

使用Django,如何在单个查询中实现此目标?

来自分类Dev

如何在Android的材质设计中实现/使用动态类型

Related 相关文章

  1. 1

    如何在 angular agm 库中获取 googleMap 对象以与 google HeatMap 一起使用?

  2. 2

    如何在Xamarin中实现Google Maps的标记集群

  3. 3

    如何在Xamarin中实现Google Maps的标记集群

  4. 4

    com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)”上的空对象引用

  5. 5

    如何在Android上的GoogleMap中修复com.google.android.gms.maps.model.Marker com.google.android.gms.maps.GoogleMap.addMarker

  6. 6

    尝试在空对象引用上调用虚拟方法“ void com.google.android.gms.maps.GoogleMap.setOnMapLongClickListener”

  7. 7

    如何在React Native Android中实现Google Map(React-Native-Maps)

  8. 8

    如何在Android中以最佳的向后兼容性实现Google Maps?

  9. 9

    如何使用react-google-maps将GoogleMap React组件重新居中到新地址?

  10. 10

    如何在Screeps对象中实现继承?

  11. 11

    使用Fragment内的MapView对象与Fragment中的MapFragment在Google Maps v2中有什么优点/缺点?

  12. 12

    使用JQuery获取Google Maps对象的实例

  13. 13

    使用AngularJS在Google Maps中实现标记

  14. 14

    如何在我的Android应用程序中实现和使用Google Cloud SQL(Eclipse)

  15. 15

    如何使用React Google Maps API访问Map对象?

  16. 16

    如何在Google Maps中显示地图?

  17. 17

    如何在泛型中实现空对象模式?

  18. 18

    OpenMP:如何在任务中实现线程本地对象?

  19. 19

    如何在Kotlin中实现对象的不同状态?

  20. 20

    如何在OrbitControls中实现围绕对象的完整垂直旋转?

  21. 21

    trait 对象是如何在 Rust 中实现的?

  22. 22

    如何在<Fragment> React中使用Promise中的数据

  23. 23

    如何在<Fragment> React中使用Promise中的数据

  24. 24

    如何在Android中的Fragment上使用OnClickListener

  25. 25

    如何在片段内获取Google Maps对象

  26. 26

    如何在python中使用multiprocessing.Pool.map实现对象中的功能?

  27. 27

    如何在python中使用multiprocessing.Pool.map实现对象中的功能?

  28. 28

    使用Django,如何在单个查询中实现此目标?

  29. 29

    如何在Android的材质设计中实现/使用动态类型

热门标签

归档