在上面的图片中,我想将onClickListener设置为多个textViews
我用以下xml替换了常规的google标记
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="300dp"
android:layout_height="60dp"
android:src="@drawable/gps_location"
android:id="@+id/g_location_box_image"/>
<TextView
android:id="@+id/num_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:text="@string/set_as_delivery_location"
android:textSize="15sp"
android:textStyle="bold"
/>
<TextView
android:id="@+id/save_as_favorite"
android:layout_width="40dp"
android:height="40dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@+id/num_txt"
android:layout_toEndOf="@+id/num_txt"
/>
</RelativeLayout>
setOnClickListener
无法使用此功能,因为整个RelativeLayout
现在是Google地图的一部分,而不是活动的一部分。
我尝试实施OnMarkerClickListener
,但这使得所有RelativeLayout
都可以点击。我需要听上面描述的两个事件:
一个在“将此设置为交付地点”,另一个在明星旁边。
我怎样才能实现这一目标?请帮助。
以下是用于替换标记的代码:
View marker = ((LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.google_marker, null);
mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude))
.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(activity, marker)))
);
答案 0 :(得分:0)
如果你想点击Marker,你应该使用InfoWindow
虽然你无法实现多个可点击的对象。
根据{{3}}
信息窗口不是实时视图,而是视图在地图上呈现为图像。因此,您在视图上设置的任何侦听器都将被忽略,并且您无法区分视图各个部分上的单击事件。建议您不要在自定义信息窗口中放置交互式组件(如按钮,复选框或文本输入)。