android - 在导航抽屉中单击时,Google 地图不可见。logcat中没有显示错误
问题描述
在导航抽屉中单击时未加载 Google 地图。logcat中没有错误。
这是用于显示地图的活动
HomeActivity.java
package com.example.location;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;
import android.support.annotation.Nullable;
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 com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class HomeActivity extends Fragment implements OnMapReadyCallback, GoogleMap.OnMarkerClickListener, LocationListener {
private GoogleMap mMap;
private DatabaseReference reference;
Marker marker;
ImageUploadInfo user;
String url;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View v= inflater.inflate(R.layout.activity_home,container,false);
SupportMapFragment fragment=(SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.maps);
fragment.getMapAsync(this);
reference= FirebaseDatabase.getInstance().getReference("Incident");
reference.push().setValue(marker);
getActivity().setTitle("Home");
return v;
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
googleMap.setOnMarkerClickListener(this);
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren())
{
ImageUploadInfo user=snapshot.getValue(ImageUploadInfo.class);
LatLng location= new LatLng(user.imageLatitdue,user.imageLongitude);
mMap.addMarker(new MarkerOptions().position(location).title(user.timeDate).snippet(user.imageURL)).setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
url=user.imageURL;
/* Bundle bundle=new Bundle();
bundle.putString("image", url);
Intent in=new Intent(MapsActivity.this,DisplayAcc.class);
in.putExtras(bundle);
startActivity(in);*/
// Intent myIntent = new Intent(MapsActivity.this,DisplayAcc.class);
//startActivity(myIntent);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(HomeActivity.this.getActivity(),DisplayAcc.class);
intent.putExtra("image", url);
startActivity(intent);
}
});
}
@Override
public boolean onMarkerClick(Marker marker) {
return false;
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
}
这是xml文件:
家庭活动.xml
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/maps"
class="com.google.android.gms.maps.SupportMapFragment"/>
</FrameLayout>
在导航抽屉活动中:
我正在使用此代码显示在窗口中:
FragmentManager manager= getSupportFragmentManager();
switch (id) {
case R.id.home:
manager.beginTransaction().replace(R.id.content_frame,new HomeActivity()).commit();
break;
...............
......
.......
}
logcat 中没有显示错误,所以我无法找出错误是什么。
请帮助我。先感谢您
LOGCAT1[ ] 2 ] 4 ] 5
解决方案
设备的内存可能已满,或者您没有在清单文件中添加 api key。您可以使用链接: https ://developers.google.com/maps/documentation/android-api/signup
推荐阅读
- javascript - 当我将 await 与 async 修饰符一起使用时,为什么 axios 不等待响应?
- reactjs - .htaccess 文件不适用于 Filezilla 的简单 React 应用程序
- python - 如何获得偏置张量流?
- spring - Spring 获取请求被拒绝,因为 URL 包含潜在的恶意字符串“;”
- java - 在 RecyclerView 中查找完全可见的项目(如 TikTok 和 Instagram Story)
- javascript - 如何无限查找标签状态?
- c# - Autofac.Core.DependencyResolutionException:类型“”的表达式不能用于 Autofac 6.2 中的返回类型“System.Object”
- dynamics-crm - 删除所有依赖组件后如何删除实体?
- javascript - 地图循环中的onchange更新状态[反应]
- syntax - 语法错误 JAGSUI:解析模型文件时出错