package com.casic.smarttube.fragment import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.casic.smarttube.R import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.widget.EasyPopupWindow import kotlinx.android.synthetic.main.fragment_home.view.* class HomePageFragment : Fragment() { private lateinit var homeView: View private lateinit var aMap: AMap override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { easyPopupWindow.setOnPopupWindowClickListener(object : EasyPopupWindow.OnPopupWindowClickListener { override fun onPopupItemClicked(position: Int) { when (position) { 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE } } }) easyPopupWindow.setBackgroundDrawable(null) val x: Int = homeView.rightOptionView.width - easyPopupWindow.width easyPopupWindow.showAsDropDown(homeView.rightOptionView, x, 0) } //地图初始化 initMap(savedInstanceState) homeView.addDeviceButton.setOnClickListener { requireContext().navigatePageTo<AddDeviceActivity>() } return homeView } private fun initMap(savedInstanceState: Bundle?) { homeView.mapView.onCreate(savedInstanceState) aMap = homeView.mapView.map aMap.mapType = AMap.MAP_TYPE_NORMAL val uiSettings = aMap.uiSettings uiSettings.isCompassEnabled = true uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER uiSettings.isZoomControlsEnabled = false//不显示+/- uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 // 地图加载成功监听 // aMap.addOnMapLoadedListener(this) // 地图缩放监听 // aMap.addOnCameraChangeListener(this) // marker 点击事件监听 // aMap.addOnMarkerClickListener(this) // 点击marker弹出自定义popup // aMap.setInfoWindowAdapter(this) } /***以下是地图生命周期管理************************************************************************/ override fun onResume() { super.onResume() homeView.mapView.onResume() } override fun onPause() { super.onPause() homeView.mapView.onPause() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) homeView.mapView.onSaveInstanceState(outState) } override fun onDestroy() { super.onDestroy() homeView.mapView.onDestroy() } }