最近在fragment中使用到百度地图,中间出现了几个坑,在这里说一下。
第一个坑就是权限请求结果无法获取,经过白板折腾,发现小小变动一下即可,如下:
在Activity中使用的时候我们的代码如下:
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
1);
我们在Fragment中申请时不是使用AcyivityCompat而是使用Fragment本身,代码如下:
HomeFragment.this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
1);
第二个就是初始化的问题:
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //在使用SDK各组件之前初始化context信息,传入ApplicationContext //注意该方法要再setContentView方法之前实现locationClient=new LocationClient(getActivity().getApplicationContext()); locationClient.registerLocationListener(new MyLocationListener());View view = inflater.inflate(R.layout.fragment_home, container, false); ButterKnife.bind(this, view); return view; }