- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 PagerAdapter 中加载 Mapfragment。这是适配器代码,
public class ShopPagerAdapter extends PagerAdapter {
private List<LoyaltyOutlet> data;
private Context context;
FragmentManager fragmentManager;
public ShopPagerAdapter(List<LoyaltyOutlet> data, Context context,FragmentManager manager) {
this.data = data;
this.context = context;
this.fragmentManager = manager;
}
@Override
public Object instantiateItem(ViewGroup collection, int position) {
LoyaltyOutlet outlet = data.get(position);
LayoutInflater inflater = LayoutInflater.from(context);
ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.fragment_loyalty_shop_item, collection, false);
TextView address = (TextView)layout.findViewById(R.id.txt_ShopAddress);
GoogleMap googleMap = ((SupportMapFragment) fragmentManager.findFragmentById(R.id.shopMap)).getMap();
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(43.1, -87.9), 10);
googleMap.animateCamera(cameraUpdate);
address.setText(outlet.getOutletName());
collection.addView(layout);
return layout;
}
@Override
public void destroyItem(ViewGroup collection, int position, Object view) {
collection.removeView((View) view);
}
@Override
public int getCount() {
return data.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public CharSequence getPageTitle(int position) {
return "";
}
}
但是当我运行代码时出现异常,
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.maps.GoogleMap com.google.android.gms.maps.SupportMapFragment.getMap()' on a null object reference
是否可以在这里使用 MapFragment,或者我应该将这段代码移到 fragment 生命周期方法中吗?
谢谢。
最佳答案
这就是我使用 MapView 实现它的方式。希望这会有所帮助
fragment 的Xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.gms.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Java 代码
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_lugar,container,false);
latitude = 26.78;
longitude = 72.56;
mMapView = (MapView) view.findViewById(R.id.mapView);
mMapView.onCreate(savedInstanceState);
mMapView.onResume();// needed to get the map to display immediately
try {
MapsInitializer.initialize(getActivity().getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
googleMap = mMapView.getMap();
// latitude and longitude
double latitude = 17.385044;
double longitude = 78.486671;
// create marker
MarkerOptions marker = new MarkerOptions().position(
new LatLng(latitude, longitude)).title("Hello Maps");
// Changing marker icon
marker.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_ROSE));
// adding marker
googleMap.addMarker(marker);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(17.385044, 78.486671)).zoom(12).build();
googleMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
return view;
}
/***** Sets up the map if it is possible to do so *****/
@Override
public void onResume() {
super.onResume();
mMapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mMapView.onLowMemory();
}
关于android - PagerAdapter 中的 MapFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37703090/
我想制作一个使用 Google Maps for Android v2 的 Android 应用程序。 我可以显示一张 map 。我什至可以导航和缩放。但是,当我想搜索要进行的更多操作时,我找不到任何
我正在按照本教程制作抽屉导航: https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer 我的 fragme
我一直在Navigation Drawer Activity 中工作,它有很多 fragment ,其中一个 fragment 包含MapFragment。 现在 MapFragment 中出现问题,
我的应用程序中有一个 MapFragment 和常规 fragment 。问题是当我在 fragment 之间切换时,MapFragment 在后台。我有代码来查找 MapFragment 是否存在,
我遇到了以下错误 Skipped 40 frames! The application may be doing too much work on its main thread. 对此进行了研究.
我有一个包含 MapFragment 的 View 我的 mainViewPanel 看起来像这样 我的翻译代码是这样的 TranslateAnimation anim = new Transl
我想知道实现带抽屉导航的 MapFragment 的正确方法是什么。我已经可以很好地工作了,但我一直在阅读一些文档,也许它会在未来造成麻烦。 所以,我实现了抽屉导航的主类是一个非常普通的类,具有以下
将 MapFragment 与操作栏菜单一起使用时,我遇到了性能问题。 当满足三个条件时就会出现错误 实例化一个 MapFragment。 从选项菜单触发 fragment 事务,用另一个 fragm
我正在尝试构建一个将实现操作栏选项卡的应用程序。其中一个选项卡应包含一个 MapFragment。 如何实现带有选项卡的操作栏,其中一个选项卡下方是 map fragment ? 你能帮我解决这个问题
我正在使用 MapFragment,我的 Activity 布局是这样的: 如果我想使用 CameraUpdateFactory.newLatLngBounds(LatLngBounds, padd
我正在尝试将我的 ActionBar 迁移到 AppCompat 21 方式(使用设置为用作 ActionBar 的工具栏小部件),但它没有显示或被 MapFragment 隐藏。 这是我的 Acti
我有一个位置类,它在 MapFragment 上创建一个实例,并且根据创建 map 的 Activity ,将放置不同的标记。我还希望 map 显示手机当前位置的标记。 我假设我可以做这样的事情,但我
我正在尝试使我的 map 应用程序重定向到位置权限设置,一旦授予权限,就会再次重定向到应用程序。由于某种原因,我的 onActivityResult 在启动 Activity Intent 后甚至没有
我目前正在调整 Google Map MapFragment View 的大小(从全屏高度到半屏)。我使用 ValueAnimator 来实现此目的,但动画在设备 (Nexus 6p) 上似乎滞后。我
我有一个使用 Google map fragment 的应用程序,我想以某种方式设置用户可以使用 map fragment 中提供的 +/- 图标达到的缩放级别限制。 有什么已知的方法可以做到这一点吗
有没有什么方法可以在不使用 XML 的情况下以编程方式将 Button 添加到 MapFragment 或直接添加到 GoogleMap 对象? 谢谢! 最佳答案 当然有,当然不是直接到 map fr
我有一个 Activity 和 MapFragment 类。我在 Activity 中创建了 MapFragment 对象。当我尝试获取 mapFragmentObject.getView() 时,它
我正在尝试在 Android Studio 中显示来自 ArcGis 的 MapView。为此,我正在使用 Map Fragments,我将 Map 和其他 UI 内容放入 xml 中。将 MapVi
我正在尝试在 PagerAdapter 中加载 Mapfragment。这是适配器代码, public class ShopPagerAdapter extends PagerAdapter {
我查看了文档,但找不到 MapFragment 只显示左下角带有 Google Logo 的灰色屏幕的任何原因。在我的 list 中,我有应用程序级别的适当元数据(GMS 版本号和 api key )
我是一名优秀的程序员,十分优秀!