Commit 7cc24708 authored by Qiu Xiang's avatar Qiu Xiang

添加 Marker selected 接口

parent bd8ff959
...@@ -51,7 +51,9 @@ public class AMapMarker extends ReactViewGroup { ...@@ -51,7 +51,9 @@ public class AMapMarker extends ReactViewGroup {
private boolean flat = false; private boolean flat = false;
private float opacity = 1; private float opacity = 1;
private boolean draggable = false; private boolean draggable = false;
private boolean selected;
private BitmapDescriptor bitmapDescriptor; private BitmapDescriptor bitmapDescriptor;
private RCTEventEmitter eventEmitter;
private DataSubscriber<CloseableReference<CloseableImage>> dataSubscriber = private DataSubscriber<CloseableReference<CloseableImage>> dataSubscriber =
new BaseDataSubscriber<CloseableReference<CloseableImage>>() { new BaseDataSubscriber<CloseableReference<CloseableImage>>() {
@Override @Override
...@@ -75,8 +77,6 @@ public class AMapMarker extends ReactViewGroup { ...@@ -75,8 +77,6 @@ public class AMapMarker extends ReactViewGroup {
} }
}; };
private RCTEventEmitter eventEmitter;
public AMapMarker(ThemedReactContext context) { public AMapMarker(ThemedReactContext context) {
super(context); super(context);
eventEmitter = context.getJSModule(RCTEventEmitter.class); eventEmitter = context.getJSModule(RCTEventEmitter.class);
...@@ -84,6 +84,11 @@ public class AMapMarker extends ReactViewGroup { ...@@ -84,6 +84,11 @@ public class AMapMarker extends ReactViewGroup {
public void addToMap(AMap map) { public void addToMap(AMap map) {
marker = map.addMarker(getMarkerOptions()); marker = map.addMarker(getMarkerOptions());
if (selected) {
marker.showInfoWindow();
} else {
marker.hideInfoWindow();
}
} }
public String getMarkerId() { public String getMarkerId() {
...@@ -159,4 +164,15 @@ public class AMapMarker extends ReactViewGroup { ...@@ -159,4 +164,15 @@ public class AMapMarker extends ReactViewGroup {
public void sendEvent(String name, WritableMap data) { public void sendEvent(String name, WritableMap data) {
eventEmitter.receiveEvent(getId(), name, data); eventEmitter.receiveEvent(getId(), name, data);
} }
public void setSelected(boolean selected) {
this.selected = selected;
if (marker != null) {
if (selected) {
marker.showInfoWindow();
} else {
marker.hideInfoWindow();
}
}
}
} }
...@@ -60,6 +60,11 @@ class AMapMarkerManager extends SimpleViewManager<AMapMarker> { ...@@ -60,6 +60,11 @@ class AMapMarkerManager extends SimpleViewManager<AMapMarker> {
marker.setDraggable(draggable); marker.setDraggable(draggable);
} }
@ReactProp(name = "selected")
public void setSelected(AMapMarker marker, boolean selected) {
marker.setSelected(selected);
}
@ReactProp(name = "image") @ReactProp(name = "image")
public void setImage(AMapMarker marker, String image) { public void setImage(AMapMarker marker, String image) {
marker.setImage(image); marker.setImage(image);
......
...@@ -51,6 +51,11 @@ class Marker extends Component { ...@@ -51,6 +51,11 @@ class Marker extends Component {
*/ */
zIndex: PropTypes.number, zIndex: PropTypes.number,
/**
* 是否选中
*/
selected: PropTypes.bool,
onPress: React.PropTypes.func, onPress: React.PropTypes.func,
onDragStart: React.PropTypes.func, onDragStart: React.PropTypes.func,
onDrag: React.PropTypes.func, onDrag: React.PropTypes.func,
......
...@@ -12,6 +12,7 @@ export default class MarkerComponent extends Component { ...@@ -12,6 +12,7 @@ export default class MarkerComponent extends Component {
<Marker <Marker
title='一个可拖拽的 Marker' title='一个可拖拽的 Marker'
draggable draggable
selected
onDragEnd={({nativeEvent}) => console.log(nativeEvent)} onDragEnd={({nativeEvent}) => console.log(nativeEvent)}
coordinate={{ coordinate={{
latitude: 39.806901, latitude: 39.806901,
......
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