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

移除 LayoutNode

parent bd40948f
...@@ -5,13 +5,13 @@ import android.graphics.Color ...@@ -5,13 +5,13 @@ import android.graphics.Color
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import com.amap.api.maps.AMap import com.amap.api.maps.AMap.InfoWindowAdapter
import com.amap.api.maps.model.Marker import com.amap.api.maps.model.Marker
class InfoWindowAdapter( class AMapInfoWindowAdapter(
val context: Context, val context: Context,
val markers: HashMap<String, AMapMarker> val markers: HashMap<String, AMapMarker>
) : AMap.InfoWindowAdapter { ) : InfoWindowAdapter {
val paddingTop = context.resources.displayMetrics.density val paddingTop = context.resources.displayMetrics.density
override fun getInfoWindow(marker: Marker): View? { override fun getInfoWindow(marker: Marker): View? {
...@@ -31,7 +31,6 @@ class InfoWindowAdapter( ...@@ -31,7 +31,6 @@ class InfoWindowAdapter(
if (!snippet.isEmpty()) { if (!snippet.isEmpty()) {
val snippetView = TextView(context) val snippetView = TextView(context)
snippetView.text = snippet snippetView.text = snippet
snippetView.setSingleLine(false)
snippetView.maxEms = 12 snippetView.maxEms = 12
snippetView.setPadding(0, paddingTop.toInt(), 0, 0) snippetView.setPadding(0, paddingTop.toInt(), 0, 0)
snippetView.setTextColor(Color.parseColor("#757575")) snippetView.setTextColor(Color.parseColor("#757575"))
......
...@@ -129,6 +129,9 @@ class AMapMarker(context: Context) : ReactViewGroup(context) { ...@@ -129,6 +129,9 @@ class AMapMarker(context: Context) : ReactViewGroup(context) {
} }
} }
/**
* TODO: 如果 IconView 里包含 Image,由于不知道 Image 什么时候加载完毕,会导致 Image 可能无法正确显示
*/
private fun updateIconView(overlay: AMapOverlay) { private fun updateIconView(overlay: AMapOverlay) {
val bitmap = Bitmap.createBitmap( val bitmap = Bitmap.createBitmap(
overlay.width, overlay.height, Bitmap.Config.ARGB_8888) overlay.width, overlay.height, Bitmap.Config.ARGB_8888)
......
package cn.qiuxiang.react.amap3d package cn.qiuxiang.react.amap3d
import android.view.ViewGroup.LayoutParams
import com.facebook.react.bridge.ReadableArray import com.facebook.react.bridge.ReadableArray
import com.facebook.react.uimanager.LayoutShadowNode
import com.facebook.react.uimanager.ThemedReactContext import com.facebook.react.uimanager.ThemedReactContext
import com.facebook.react.uimanager.ViewGroupManager import com.facebook.react.uimanager.ViewGroupManager
...@@ -25,15 +23,6 @@ class AMapOverlayManager : ViewGroupManager<AMapOverlay>() { ...@@ -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 { companion object {
val UPDATE = 1 val UPDATE = 1
} }
......
...@@ -96,7 +96,7 @@ class AMapView(context: Context) : TextureMapView(context) { ...@@ -96,7 +96,7 @@ class AMapView(context: Context) : TextureMapView(context) {
emit(polylines[polyline.id]?.id, "onPolylineClick") emit(polylines[polyline.id]?.id, "onPolylineClick")
} }
map.setInfoWindowAdapter(InfoWindowAdapter(context, markers)) map.setInfoWindowAdapter(AMapInfoWindowAdapter(context, markers))
} }
@SuppressLint("MissingSuperCall") @SuppressLint("MissingSuperCall")
......
...@@ -177,6 +177,4 @@ internal class AMapViewManager : ViewGroupManager<AMapView>() { ...@@ -177,6 +177,4 @@ internal class AMapViewManager : ViewGroupManager<AMapView>() {
fun changeRotation(view: AMapView, rotation: Float) { fun changeRotation(view: AMapView, rotation: Float) {
view.map.moveCamera(CameraUpdateFactory.changeBearing(rotation)) 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