0

選択してドラッグできる多数のドローアブルで構成されるオーバーレイを持つ MapView があります。

問題は、オブジェクトをドラッグすると MapView も移動することです。

MapView をロックする方法はありますか?

使ってみましたmap.setClickable(false)

私も使用しました:

        map.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == MotionEvent.ACTION_MOVE) {
                    return true;
                }
                return false;
            }
        });

どちらの試みも動きをロックしませんが、オーバーレイを選択する機能を無効にします。

何か案は?

ありがとう

4

2 に答える 2

0

私の古いプロジェクトではMapView.clickable(false)、その上にレイアウトを設定して追加しましたMapView。それが最善の解決策かどうかはわかりません。

アップデート:

<RelativeLayout
            a:id="@+id/map_block"
            a:layout_width="fill_parent"
            a:layout_height="wrap_content"
            >
            <RelativeLayout
                a:id="@+id/map_holder"
                a:layout_width="fill_parent"
                a:layout_height="150dp"
                />

        <!-- Layout for catching clicks -->
            <TextView
                a:id="@+id/map_click_receiver"
                a:layout_width="fill_parent"
                a:layout_height="150dp"
                />
</RelativeLayout>

プログラムで追加MapViewmap_holderます。

mMapView = new MapView(mContext, getString(R.string.gmaps_key));
mapHolder.addView(mMapView, new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

そうそう、(しかし私mMapClickReceiver.setClickable(false)も役立つと思います):

    mMapClickReceiver.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // something to do
                    }
                });
于 2012-12-04T21:27:11.630 に答える
0

これは私のために働く:

map.setOnTouchListener(new OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_MOVE) {
            return true;
        }
        return v.onTouchEvent(event);
     }

});
于 2012-12-04T22:03:42.010 に答える