我对Google Maps有问题,例如getSupportFragmentManager()。findFragmentById返回始终为空。你有一个想法如何解决这个问题?getSupportFragmentManager()。findFragmentById在Android中的fragment中返回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);
...
我在活动谷歌地图,并将其与代码工作:
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
我想在片段中重新使用它,因为我需要片段中的地图,而不是活动中的地图,但它不起作用。
我想:
- 调用此代码 “onCreateView” 功能
SupportMapFragment mapFragment = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.map);
GoogleMap mGoogleMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap();
已被弃用,应用程序崩溃SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
和类似的变化,但在任何情况下,我得到null为mapFragment。
你知道我该怎么解决这个问题?
你必须使用'onCreateView'的片段。你能在这里发布日志,以便我们知道错误是什么? –
如果我使用'onCreateView',我仍然得到这个错误。您可以在我的问题更新 –
中看到错误报告,我找到了解决方案。谢谢:) –