2

重複の可能性:
viewpager ページの mapview に関するジェスチャの問題

タブ間を水平にスワイプできるテンプレートを使用しています

しかし、私のタブの 1 つはMapViewであるため、その MapView で左右にスワイプすると、マップを移動する代わりにタブが切り替わります。

そのMapViewタブでのみジェスチャを無効にする方法はありますか?

ありがとう

4

1 に答える 1

17

この質問から答えを見つけました

リンクが無効になっている場合に備えて、ここにコードをコピーしました。

この正確なコードを使用して新しいクラスを作成すると、MapView がマップ関連のジェスチャ以外のジェスチャを受信できなくなります。packageこれらのコードの上にand import(CTRL+SHIFT+O)を追加することを忘れないでください

public class CustomViewPager extends ViewPager {

    public CustomViewPager(Context context) {
        super(context);
    }

    public CustomViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
        if (v instanceof MapView) {
            return true;
        }
        return super.canScroll(v, checkV, dx, x, y);
    }
}

次に、 を次のようにmain.xml変更<android.support.v4.view.ViewPager ... />します。

<com.yourPackage.CustomViewPager
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main" />

その質問に答えてくれた Joge Aguilar に感謝します!

于 2012-11-08T03:37:00.393 に答える