【问题标题】:Map is not centered when displayed in a Fragment在 Fragment 中显示时地图不居中
【发布时间】:2015-02-24 22:40:49
【问题描述】:

我有一个使用 OSM 机器人显示地图的应用。

当我打电话时

mapView.setCenter(new GeoPoint(foo,bar));

来自地图onCreateView(),地图显示在包含所需<MapView> 的活动中,它居中很好。 但是,当 <MapView> 位于片段内,然后以编程方式加载到布局中时,它会以将所需中心放置在左上角的偏移量居中。

我也尝试在片段onStart()onResume() 中调用mapView.setCenter(),但仍然是同样的问题。

可能是什么问题以及解决方案?

【问题讨论】:

  • 你用的是哪个版本的osmdroid?
  • @MKer 我正在使用预编译的 4.2 库。没有 Maven。
  • 4.2 是问题所在。见这里:stackoverflow.com/a/28742551/3151518
  • 感谢@MKer。我会试试这个然后回来。截至今天,我跳过了自动居中,因为这确实不是我需要的功能。但我必须说,自从在两个项目中使用 OSMDroid 以来,我对框架在比这更多的地方存在的漏洞和无文档感到有点失望。
  • 无证,我完全同意。巴基,我没看到。 4.2 中的初始居中一直是一个长期存在的问题,但在 4.3 中得到了解决。项目中大多数未解决的问题实际上都是增强请求。 OSMBonusPack 在很多情况下都可以提供帮助:-)

标签: android android-fragments osmdroid


【解决方案1】:

尝试将 next 添加到您的 Fragment 中:

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    view.post(new Runnable() {
        @Override
        public void run() {
            mapView.setCenter(new GeoPoint(foo,bar));
        }
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2010-12-17
    • 2014-12-24
    • 1970-01-01
    • 2016-05-26
    相关资源
    最近更新 更多