我正在使用supportMapFragment里面的片段这就是为什么我使用this.getChildFragmentManager()如果这个错误请指导我
public static ClinicFragment newInstance() {
ClinicFragment fragment = new ClinicFragment();
return fragment;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
setTargetFragment(null , -1); // one of my tries
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_maps, null, false);
Log.i(TAG , "onCreateView");
mapFragment = (SupportMapFragment) this.getChildFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
mapUtils = new MapUtils(getActivity());
.......
return view;
}
@Override
public void onMapReady(com.google.android.gms.maps.GoogleMap googleMap) {
mMap = googleMap;
mMap.setMyLocationEnabled(true);
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.setOnMarkerClickListener(this);
}
@Override …Run Code Online (Sandbox Code Playgroud) 我有一个带有一些碎片的导航抽屉.每个片段在布局中都有一个MapFragment.最初,当应用程序运行导航抽屉时,单击打开片段一次,但是当我单击相同的导航项以第二次打开相同的片段(在访问其他片段之后)后,我得到以下错误onCreateView()
Binary XML file line #1: Error inflating class fragment
Run Code Online (Sandbox Code Playgroud)
下面是我的片段代码:
user_map_Fragment.xml
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
android:id="@+id/parentContainer"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="200dp"
android:name="com.google.android.gms.maps.MapFragment"/>
......
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
MainFragment.cs
public class MainFragement : Android.Support.V4.App.Fragment, IOnMapReadyCallback, ILocationListener, Android.Views.View.IOnKeyListener
{
private GoogleMap mMap;
private LocationManager _locationManager;
private string _locationProvider;
private Android.Locations.Location _currentLocation;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (v == null)
{
v = inflater.Inflate(Resource.Layout.Main, container, false);
SetUpMap();
InitializeLocationManager();
}
return v;
}
}
private void SetUpMap()
{
if …Run Code Online (Sandbox Code Playgroud) android google-maps android-fragments mapfragment supportmapfragment
我有一个扩展SupportMapFragment的片段.
public class PlaceMapsFragment extends SupportMapFragment {
private GoogleMap mMap;
private LatLng mPosFija;
public PlaceMapsFragment() {
super();
}
public static PlaceMapsFragment newInstance(LatLng posicion) {
PlaceMapsFragment frag = new PlaceMapsFragment();
frag.mPosFija = posicion;
return frag;
}
@Override
public GoogleMap getMap() {
// TODO Auto-generated method stub
return super.getMap();
}
@Override
public void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
//initMap();
return view; …Run Code Online (Sandbox Code Playgroud) 我正在使用SupportMapFragment并取得圆满成功.我根本没有任何问题.
但是我在应用程序运行时遇到错误.我正在运行Gingerbread手机,它有最新的GooglePlay.另请注意,我正在使用SupportMapFragment和其他支持类,以迎合预蜂窝.
Could not find class 'maps.j.k', referenced from method maps.y.ae.a`
Run Code Online (Sandbox Code Playgroud)
一旦我膨胀我的视图就会发生错误.
inflater.inflate(R.layout.fragment_map, container, false);
Run Code Online (Sandbox Code Playgroud)
我的布局文件(fragment_map.xml):
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪(出错时):
Thread [<1> main] (Suspended)
<VM does not provide monitor information>
PhoneLayoutInflater(LayoutInflater).inflate(int, ViewGroup, boolean) line: 322
MapsFragment.onCreateView(LayoutInflater, ViewGroup, Bundle) line: 90
MapsFragment(Fragment).performCreateView(LayoutInflater, ViewGroup, Bundle) line: 1460
FragmentManagerImpl.moveToState(Fragment, int, int, int, boolean) line: 911
FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1088
BackStackRecord.run() line: 682
FragmentManagerImpl.execPendingActions() line: 1444
FragmentManagerImpl$1.run() line: 429
FragmentActivity$1(Handler).handleCallback(Message) line: 587
FragmentActivity$1(Handler).dispatchMessage(Message) line: 92
Looper.loop() …Run Code Online (Sandbox Code Playgroud) android android-fragments mapfragment supportmapfragment android-maps-v2
在我的应用程序中我在片段中显示谷歌地图版本2.但我得到Null指针异常
mMap = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
这是我的完整代码:
public class SearchResultMap extends Fragment{
private GoogleMap mMap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View fragmentView = inflater.inflate(R.layout.map, container, false);
mMap = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); // line no : 28
mMap.addMarker(new MarkerOptions() .position(new LatLng(xxxxxx,xxxxxx)) .title("Current Location")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ball_pointer))
.snippet("xxxxx"));
return fragmentView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
Run Code Online (Sandbox Code Playgroud)
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" /> …Run Code Online (Sandbox Code Playgroud) android android-maps google-play-services supportmapfragment android-maps-v2
我正在尝试在片段中动态加载SupportMapFragment,这是我的onCreateView()方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View contentView = inflater.inflate(R.layout.frag_map_layout, null);
shopDtos=ShopListFragment.shopDtos;
fragment =SupportMapFragment.newInstance();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.map_content, fragment);
ft.commit();
map = fragment.getMap();
mapMarker = map.addMarker(new MarkerOptions().position(new LatLng(0, 0))
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.maps_pin)));
return contentView;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我将谷歌地图映射为null.有关如何动态创建mapfragment的任何建议?
我正在 Xamarin 中编写 Google 地图应用程序,并已成功扩展该类以使用Android.Support.V4.App.FragmentActivity.
我现在想将 a 更改Android.Support.V4.App.FragmentActivity为 a Android.Support.V4.App.Fragment,以便我可以拥有ViewPager一个包含 Google 地图片段的 a。
由于我现在已更改了要扩展的类Android.Support.V4.App.Fragment,因此我无法引用SupportFragmentManager.
这是我的代码:
private void InitMapFragment()
{
_mapFragment = SupportFragmentManager.FindFragmentByTag("map") as SupportMapFragment;
if (_mapFragment == null)
{
GoogleMapOptions mapOptions = new GoogleMapOptions()
.InvokeMapType(GoogleMap.MapTypeNormal)
.InvokeZoomControlsEnabled(true)
.InvokeCompassEnabled(true);
FragmentTransaction fragTx = SupportFragmentManager.BeginTransaction();
_mapFragment = SupportMapFragment.NewInstance(mapOptions);
fragTx.Add(Resource.Id.map, _mapFragment, "map");
fragTx.Commit();
}
}
Run Code Online (Sandbox Code Playgroud)
如何SupportFragmentManager在 a 中引用Android.Support.V4.App.Fragment?
提前致谢
android android-fragments android-viewpager xamarin supportmapfragment
我们正试图在我们的Android应用程序中追踪GoogleMap上发生的内存泄漏,该应用程序在大约40-50个设备轮换后以OOM结束.地图设置为3500个标记.
该应用程序的minSDK为9,因此使用V4支持库中的SupportMapFragment.
我们尝试过多种方法,包括:
分析MAT中的内存转储表明我们积累了大量的实例
com.google.android.gms.location.internal.LocationClientHelper$ListenerTransport
,我们不知道它们来自哪里.
任何人都知道这个内存泄漏的原因是什么?
以下代码已删除所有标记和侦听器,但仍然存在泄漏.首先是基类:
public abstract class BaseMapFragment extends Fragment {
public static final int MENU_ITEM_ID_SEARCH= 102;
public static final int MENU_ITEM_ID_SHOW_LIST= 100;
public static final int ZOOM_LEVEL_DEFAULT= 14;
private static final String SAVED_INSTANCE_LATITUDE= "savedLatitude";
private static final String SAVED_INSTANCE_LONGITUDE= "savedLongitutde";
private static final String SAVED_INSTANCE_ZOOM= "savedZoom";
protected static final String CLASSTAG= BaseMapFragment.class.getSimpleName();
private GoogleMap mMap;
private CameraUpdate mResumeCameraUpdate= null;
private double mSavedLatitude;
private double mSavedLongitude;
private float …Run Code Online (Sandbox Code Playgroud) android google-maps memory-leaks google-maps-android-api-2 supportmapfragment
我观察到谷歌地图的意外行为.问题是使用支持地图片段从顶部和底部区域获取裁剪,如果我使用全屏,则地图完全可见,如图1所示,但如果我应用地图片段高度或权重属性,则地图不完全可见如图2所示.
图片1的布局xml:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.paki.venturedive.awtest.MapsActivity" />
Run Code Online (Sandbox Code Playgroud)
布局xml为图片2:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.6"
tools:context="com.paki.venturedive.awtest.MapsActivity" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello world"
android:layout_weight="0.4" />
Run Code Online (Sandbox Code Playgroud)
Java代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
Run Code Online (Sandbox Code Playgroud)
在图2中,我(用户将)无法看到格陵兰岛上方的北极海洋,同样底部区域将会丢失,如图3所示
.
有没有人面对这个问题或有没有人知道如何应对它?
任何参考链接或提示将不胜感激.
android google-maps google-maps-android-api-2 supportmapfragment
在经历了与我的头衔相关的SO问题之后,我找不到问题的解决方案.我有一个NullPointerException在mapFragment.getMapAsync.以下是我的MapActivity代码.
package com.example.jerofad.mylocation;
import android.app.FragmentManager;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
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.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) this.getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add …Run Code Online (Sandbox Code Playgroud) java android google-maps android-manifest supportmapfragment