diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index e3299f92b7..69768084e3 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -366,68 +366,77 @@ public class TopViewAnimHelper { statusListenerMap.get(view).beforeViewAddAnim(view); } topContainer.setChildAddedListener(child -> { - topContainer.setChildAddedListener(null); - if (naviBg.getVisibility() == View.VISIBLE) { - remainDistanceGroup.setVisibility(View.GONE); - remainTimeGroup.setVisibility(View.GONE); - arriveTimeGroup.setVisibility(View.GONE); - } + try { + topContainer.setChildAddedListener(null); + if (naviBg.getVisibility() == View.VISIBLE) { + remainDistanceGroup.setVisibility(View.GONE); + remainTimeGroup.setVisibility(View.GONE); + arriveTimeGroup.setVisibility(View.GONE); + } - constraintSet.clone(topMotionLayout); + constraintSet.clone(topMotionLayout); - constraintSet.clear(R.id.module_entrance_id_top_container, - ConstraintSet.BOTTOM); - constraintSet.connect(R.id.module_entrance_id_top_container, ConstraintSet.TOP, - R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP); + constraintSet.clear(R.id.module_entrance_id_top_container, + ConstraintSet.BOTTOM); + constraintSet.connect(R.id.module_entrance_id_top_container, + ConstraintSet.TOP, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP); // if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) { - TransitionManager.beginDelayedTransition(topMotionLayout, transition); + TransitionManager.beginDelayedTransition(topMotionLayout, transition); // } - checkCameraModePosition(false); - if (naviBg.getVisibility() == View.VISIBLE) { - // 约束设置需要在applyTo()方法之前执行,visiable设置需要在applyTo() - // 方法之后执行才能生效,所以分开了两个判断,至于为什么这么做才能生效,不得而知 - constraintSet.connect(tvNextDistance.getId(), ConstraintSet.BOTTOM, - ivTurnIcon.getId(), ConstraintSet.BOTTOM); - constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.LEFT, - naviBg.getId(), ConstraintSet.LEFT, - (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_marginLeft)); + checkCameraModePosition(false); + if (naviBg.getVisibility() == View.VISIBLE) { + // 约束设置需要在applyTo()方法之前执行,visiable设置需要在applyTo() + // 方法之后执行才能生效,所以分开了两个判断,至于为什么这么做才能生效,不得而知 + constraintSet.connect(tvNextDistance.getId(), ConstraintSet.BOTTOM, + ivTurnIcon.getId(), ConstraintSet.BOTTOM); + constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.LEFT, + naviBg.getId(), ConstraintSet.LEFT, + (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_marginLeft)); // constraintSet.clear(tvNextRoad.getId(), ConstraintSet.BOTTOM); - constraintSet.connect(tvNextRoad.getId(), ConstraintSet.BOTTOM, - tvNextDistance.getId(), ConstraintSet.BOTTOM, - (int) getDimen(R.dimen.module_map_id_navi_next_info_road_marginBottom_small)); - constraintSet.connect(tvNextRoad.getId(), ConstraintSet.LEFT, - R.id.module_map_id_navi_next_info_turn_info, ConstraintSet.RIGHT, - (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.dp_46)); + constraintSet.connect(tvNextRoad.getId(), ConstraintSet.BOTTOM, + tvNextDistance.getId(), ConstraintSet.BOTTOM, + (int) getDimen(R.dimen.module_map_id_navi_next_info_road_marginBottom_small)); + constraintSet.connect(tvNextRoad.getId(), ConstraintSet.LEFT, + R.id.module_map_id_navi_next_info_turn_info, + ConstraintSet.RIGHT, + (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.dp_46)); - constraintSet.clear(ivTurnIcon.getId(), ConstraintSet.TOP); - constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.BOTTOM, - naviBg.getId(), ConstraintSet.BOTTOM, - (int) getDimen(R.dimen.module_ext_navi_info_turn_icon_margin_bottom)); + constraintSet.clear(ivTurnIcon.getId(), ConstraintSet.TOP); + constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.BOTTOM, + naviBg.getId(), ConstraintSet.BOTTOM, + (int) getDimen(R.dimen.module_ext_navi_info_turn_icon_margin_bottom)); - constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, - R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, - computeNaviMarginTop(params.height)); + constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, + computeNaviMarginTop(params.height)); - // 动态改变相关字体大小 - tvNextDistance.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_textSize_small)); - tvNextDistanceUnit.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize_small)); + // 动态改变相关字体大小 + tvNextDistance.setTextSize(TypedValue.COMPLEX_UNIT_PX, + getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_textSize_small)); + tvNextDistanceUnit.setTextSize(TypedValue.COMPLEX_UNIT_PX, + getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize_small)); + } + constraintSet.applyTo(topMotionLayout); + ivTurnIcon.getLayoutParams().height = + (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_height); + ivTurnIcon.getLayoutParams().width = + (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_width); + naviBg.getLayoutParams().height = + (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height); + int scene = 0; + if (naviBg.getVisibility() == View.VISIBLE) { + scene = Scene.NAVI_WITH_ROAD_EVENT; + } else { + scene = Scene.AIMLESS_WITH_ROAD_EVENT; + } + Logger.d(TAG, "show top setMapCenterPointByScene: " + scene); + MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); + } catch (Exception e) { + Logger.e(TAG, e, "添加view异常"); + e.printStackTrace(); } - constraintSet.applyTo(topMotionLayout); - ivTurnIcon.getLayoutParams().height = - (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_height); - ivTurnIcon.getLayoutParams().width = - (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_width); - naviBg.getLayoutParams().height = - (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height); - int scene = 0; - if (naviBg.getVisibility() == View.VISIBLE) { - scene = Scene.NAVI_WITH_ROAD_EVENT; - } else { - scene = Scene.AIMLESS_WITH_ROAD_EVENT; - } - Logger.d(TAG, "show top setMapCenterPointByScene: " + scene); - MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); }); } }