简体   繁体   English

Mapbox无法分段工作

[英]Mapbox doesn't work in fragment

I put mapbox in fragment but I can only see the title. 我将mapbox放在片段中,但只能看到标题。 Here is my code in fragment. 这是我的代码片段。

I can only see a gray screen with mapbox title. 我只能看到带有Mapbox标题的灰色屏幕。 And I got no errors except emulator. 除了模拟器,我没有其他错误。 Also, I tried to get Instance of MapBox in parent activity but it doesn't work either. 另外,我尝试在父级活动中获取MapBox的实例,但是它也不起作用。 I could sure use some help. 我肯定可以帮忙。

public class MapBox extends Fragment
{
    View root;
    MapView mapView;


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        Mapbox.getInstance(getContext(),
                "pk.eyJ1IjoiYWNpaGFuayIsImEiOiJjamRobGVpdjUwd2tpMndtZmpsemxybjBjIn0.dmYB5bqnEqC57WqfH06hIQ");
        root = inflater.inflate(R.layout.mapbox_layout, container, false);

        return  root;
    }

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

        mapView =(MapView) (root).findViewById(R.id.mapboxView);
        mapView.onCreate(savedInstanceState);
    }

    @Override
    public void onStart() {
        super.onStart();
        mapView.onStart();
    }

    @Override
    public void onResume() {
        super.onResume();
        mapView.onResume();
    }

    @Override
    public void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    public void onStop() {
        super.onStop();
        mapView.onStop();
    }

    @Override
    public void onLowMemory() {
        super.onLowMemory();
        mapView.onLowMemory();
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);

    }
}

Did you set the permissions for internet, fine location and access WiFi state like this: 您是否设置了互联网访问权限,良好的位置并访问WiFi状态,如下所示:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

And also set ACCESS_WIFI_STATE . 还要设置ACCESS_WIFI_STATE You can also do it without onViewCreated - method and put it all in the onCreateView - method. 您也可以不使用onViewCreated方法将其放到onCreateView方法中。

MapBox does also have a demo on github . MapBox在github上也有一个演示。 May this will help you out. 愿这可以帮助您。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM