作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有两个窗口的滑动标签 fragment ,第一个包含谷歌地图 View 。 Fragments 工作正常,Google fragment 也显示出来,但 map 没有加载。仅显示带有网格线和谷歌 Logo 的空白 map 。我的代码有什么问题?
public class CardFragment extends Fragment implements OnMapReadyCallback{
private static final String ARG_POSITION = "position";
private int position;
GoogleMap mMap;
Geocoder coder;
public static CardFragment newInstance(int position) {
CardFragment f = new CardFragment();
Bundle b = new Bundle();
b.putInt(ARG_POSITION, position);
f.setArguments(b);
return f;
}
public static MapsFragment newInstance(String s) {
Bundle args = new Bundle();
args.putString("value", s);
MapsFragment result = new MapsFragment();
result.setArguments(args);
return result;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
position = getArguments().getInt(ARG_POSITION);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(position == 0){
View rootView = inflater.inflate(R.layout.maps_frag,container,false);
ButterKnife.inject(this, rootView);
ViewCompat.setElevation(rootView, 50);
if(GooglePlayServicesUtil.isGooglePlayServicesAvailable(this.getContext()) == ConnectionResult.SUCCESS) {
MapView mapView = (MapView) rootView.findViewById(R.id.mymap);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
}
return rootView;
} else {
View rootView = inflater.inflate(R.layout.list_frag,container,false);
ViewCompat.setElevation(rootView, 50);
return rootView;
}
@Override
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
coder = new Geocoder(this.getContext());
p1 = null;
}
布局maps_frag
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:id="@+id/cardview"
android:layout_width="match_parent"
android:layout_height="match_parent"
card_view:cardBackgroundColor="@android:color/white">
<com.google.android.gms.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/swagishmap"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.locustapps.ingredientsapp.MapsActivity"/>
</android.support.v7.widget.CardView>
</FrameLayout>
最佳答案
我不明白您尝试使用名称为 com.google.android.gms.maps.SupportMapFragment
的 MapView 做什么。这没有任何意义。
如果你想把 map 放在 fragment 中,你应该使用 MapFragment或 SupportMapFragment如果使用 fragment 的兼容性库。这些 fragment 将管理 fragment 空间中 map 的显示。
ApiDemos示例项目有如何使用它的例子。 Here is a layout声明一个 SupportMapView fragment 。
关于java - 谷歌地图不加载 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36523159/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!