Den*_*ski 9 api performance android google-maps android-fragments
在FragmentActivity里面我替换了嵌套了TabPageIndicator的Fragment(里面有2个标签).
第一个选项卡 - 带描述的片段.
第二个标签 - 带有地图内部+标记的片段!
当我启动FragmentActivity时,暂停在3-8秒附近(取决于手机的性能).
原因 - 地图渲染.
我怎样才能加快发布速度?
FragmentStatePagerAdapter
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new Fragment1();
case 1:
return new Fragment2();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
Fragment2
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.i(Util.TAG, getClass().getName() + " onCreateView");
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null)
parent.removeView(view);
}
try {
view = (ViewGroup) inflater.inflate(R.layout.map_view, container, false);
} catch (InflateException e) {
}
setUpMapIfNeeded();
return view;
}
public void setUpMapIfNeeded() {
if (map == null) {
SupportMapFragment mapFragment = (SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
map = mapFragment.getMap();
if (map != null) {
setUpMap();
} else {
Toast.makeText(getActivity(), "Unable to create map", Toast.LENGTH_SHORT).show();
}
}
}
private void setUpMap() {
map.setMyLocationEnabled(true);
map.addMarker(new MarkerOptions().position(KIEV).title("Kiev").snippet("Ukraine"));// .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher))
map.moveCamera(CameraUpdateFactory.newLatLngZoom(KIEV, 15));
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
map.setOnMapLoadedCallback(this);
}
Run Code Online (Sandbox Code Playgroud)
我试图评论除此之外的所有内容:
view = (ViewGroup) inflater.inflate(R.layout.map_view, container, false);
Run Code Online (Sandbox Code Playgroud)
但结果是一样的.地图初始化太长.
我应该使用单独的线程来加载地图视图吗?(如果是,我如何在后台线程中获得布局inflater和容器)
如果片段可见,我决定加载地图,但这不是一个好主意.
| 归档时间: |
|
| 查看次数: |
1214 次 |
| 最近记录: |