19

カスタムレイアウトのInfoWindowAdapterをAndroidGoogleMapsAPIv2ベースのマップフラグメントに追加しています。getInfoWindow()から戻るビューにボタンを配置しました。ボタンは完全に正常に表示されますが、そのボタンをクリックすると、ウィンドウ自体がクリックを記録します(通常は黄色がかった色合いで点滅します)が、ボタンはそうではありません。

情報ウィンドウのボタンを「クリック可能」にするにはどうすればよいですか?そして、拡張として、情報ウィンドウ内のビューはありますか?

4

4 に答える 4

10

を使用して情報ウィンドウを任意のビューに設定できますがGoogleMap.setInfoWindowAdapter()、マップ上にレンダリングされる情報ウィンドウはライブビューではありません。代わりに、アダプターによってビューが返されたときのビューのスナップショットです(ここを参照)。そのため、残念ながら、マップ上に配置されると、標準のビューのようには動作しません。

于 2012-12-04T23:02:23.507 に答える
8

代わりに、OnMarkerClickListenerを使用してマーカークリックイベントをリッスンし、独自の完全なビューを直接表示します。ただし、マーカーの位置に固定するのは少し手間がかかる場合があります。showAtLocation(View parent、intgravity、int x、int y)でPopupWindowを試してください

于 2012-12-05T00:23:54.873 に答える
4

たぶん、InfoWindowClickListenerでAlartDialogをカスタマイズして、何かのイベントを切り替えることができます

map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {          
        public void onInfoWindowClick(Marker marker) {
            String[] items={"onefunction","twofunction"};
            AlertDialog.Builder itemDilog = new AlertDialog.Builder(context);
            itemDilog.setTitle("");
            itemDilog.setCancelable(false);
            itemDilog.setItems(items, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    switch(which){
                    case 0:{
                            onefunction();
                            }break;
                    case 1:{
                            twofunction();
                            }break; 
                    }

                }
            });
            itemDilog.show();

        }
    });
于 2013-01-24T10:45:45.287 に答える
0

CustomInfoWindowAdapterセットタグ:

mWindow.findViewById(R.id.chat).setTag("chatTag"); // button

と:

  @Override
public void onInfoWindowClick(Marker marker) {


   if(customInfoWindowAdapter.getInfoContents(marker).findViewById(R.id.chat).getTag().equals("chatTag")) {
      // any code here
   }
}
于 2019-11-07T23:56:45.567 に答える