我对Google Maps有一个问题,即getSupportFragmentManager().findFragmentById返回的总是null。你有办法解决这个吗?
代码如下:
fragment_map.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.myapp.something.MapFragment">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</FrameLayout>
mapsFragment.java:
public class MapFragment extends Fragment implements OnMapReadyCallback, android.location.LocationListener
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
SupportMapFragment mapFragment = (SupportMapFragment) this.getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
...
我有Google Maps在活动,它与代码一起工作:
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
你知道我怎么解决这个问题吗?
问题是您正在尝试使用活动的FragmentManager,而您应该使用片段的子FragmentManager。
删除片段中的OnCreate()
重写,并添加一个OnCreateView()
重写,在该重写中您可以放大布局并调用GetMapAsync()
:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_map, container, false);
SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
return rootView;
}
我尝试在我的MainActivity上使用google map功能,我有一个空指针返回:getsupportfragmentmanager().findFragmentById(r.id.map);==>返回null mapfragment将为null,当我使用getMapAsync(this)调用它时;应用程序在启动前就关闭了 content_main.xml 以下是文件: 映射片段位于cont
我正在尝试在android中实现片段通信,就像android指南中的那样http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity 但是我的应用程序由于getSupportFragmentManager()而崩溃。findFragmentById()返回null。我的实现有什么问题。
我有问题加载一个谷歌地图在我的片段。一切都从一个循环器视图适配器开始,该适配器启动活动“ViatGedetAllViewActivity”: 这是我的DetallViewActivity: =2 03-24 02:55:53.881 639-7362/com.example.usuari.MyApplication3 w/ResourcesManager:GetTopleVelResources:
mainactivity.java 问题是,当我调用时,我得到的是空值,但当我调用时,我得到的是片段。
我正在开发一个应用程序,应该支持手机和平板电脑。在这个应用程序中,我使用的是来自Android的片段。 现在应用程序的流程如下所示 MainActivity-->fragment1-->Fragment2 我只是在图像中标记了一个额外的菜单项。那么我为什么要来,我该如何解决呢?
如果我们使用<code>系统使用本机库。loadLibrary()然后<code>SupportMapFragment。它在没有任何stacktrace的情况下实现了这一点。这是我能收集到的最好的日志: 我花了几天时间试图了解导致它的原因,似乎如果我们删除调用,即不使用我们的本机lib,那么就可以正常工作。有什么方法可以在不删除我们的本机lib的情况下解决它吗? 编辑:我创建了一个示例应用程序来重