Commit 76c59540 authored by Qiu Xiang's avatar Qiu Xiang

移除 LayoutNode

parent bd40948f
......@@ -5,13 +5,13 @@ import android.graphics.Color
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import com.amap.api.maps.AMap
import com.amap.api.maps.AMap.InfoWindowAdapter
import com.amap.api.maps.model.Marker
class InfoWindowAdapter(
class AMapInfoWindowAdapter(
val context: Context,
val markers: HashMap<String, AMapMarker>
) : AMap.InfoWindowAdapter {
) : InfoWindowAdapter {
val paddingTop = context.resources.displayMetrics.density
override fun getInfoWindow(marker: Marker): View? {
......@@ -31,7 +31,6 @@ class InfoWindowAdapter(
if (!snippet.isEmpty()) {
val snippetView = TextView(context)
snippetView.text = snippet
snippetView.setSingleLine(false)
snippetView.maxEms = 12
snippetView.setPadding(0, paddingTop.toInt(), 0, 0)
snippetView.setTextColor(Color.parseColor("#757575"))
......
......@@ -129,6 +129,9 @@ class AMapMarker(context: Context) : ReactViewGroup(context) {
}
}
/**
* TODO: 如果 IconView 里包含 Image,由于不知道 Image 什么时候加载完毕,会导致 Image 可能无法正确显示
*/
private fun updateIconView(overlay: AMapOverlay) {
val bitmap = Bitmap.createBitmap(
overlay.width, overlay.height, Bitmap.Config.ARGB_8888)
......
package cn.qiuxiang.react.amap3d
import android.view.ViewGroup.LayoutParams
import com.facebook.react.bridge.ReadableArray
import com.facebook.react.uimanager.LayoutShadowNode
import com.facebook.react.uimanager.ThemedReactContext
import com.facebook.react.uimanager.ViewGroupManager
......@@ -25,15 +23,6 @@ class AMapOverlayManager : ViewGroupManager<AMapOverlay>() {
}
}
override fun createShadowNodeInstance(): LayoutShadowNode {
return LayoutNode()
}
override fun updateExtraData(overlay: AMapOverlay, extraData: Any) {
val data = extraData as LayoutNode.Layout
overlay.layoutParams = LayoutParams(data.width, data.height)
}
companion object {
val UPDATE = 1
}
......
......@@ -96,7 +96,7 @@ class AMapView(context: Context) : TextureMapView(context) {
emit(polylines[polyline.id]?.id, "onPolylineClick")
}
map.setInfoWindowAdapter(InfoWindowAdapter(context, markers))
map.setInfoWindowAdapter(AMapInfoWindowAdapter(context, markers))
}
@SuppressLint("MissingSuperCall")
......
......@@ -177,6 +177,4 @@ internal class AMapViewManager : ViewGroupManager<AMapView>() {
fun changeRotation(view: AMapView, rotation: Float) {
view.map.moveCamera(CameraUpdateFactory.changeBearing(rotation))
}
// todo: 自定义 locationStyle
}
package cn.qiuxiang.react.amap3d
import com.facebook.react.uimanager.LayoutShadowNode
import com.facebook.react.uimanager.UIViewOperationQueue
class LayoutNode : LayoutShadowNode() {
override fun onCollectExtraUpdates(operationQueue: UIViewOperationQueue) {
super.onCollectExtraUpdates(operationQueue)
operationQueue.enqueueUpdateExtraData(reactTag, Layout(
layoutWidth.toInt(),
layoutHeight.toInt()))
}
data class Layout(var width: Int, var height: Int)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment