1

を統合したアプリケーションを開発していますGoogle map API v2。を使用して実行時に追加したスライド メニューがありますHorizontalScrollViewHorizontalScrollView問題は、水平方向にスクロールしようとするとタッチイベントを取得するため、マップを垂直方向にしかスクロールできないことです。

こんな感じでレイアウトを作っています。

LayoutInflater inflater = LayoutInflater.from(this);
    View menu = inflater.inflate(R.layout.menu, null);

    HorizontalScrollView hsv = new HorizontalScrollView(this) {
        @Override
        public boolean onTouchEvent(MotionEvent ev) {
            if (Menu_Displayed) {
                return false;
            } else {
                return true;
            }
        }
    LinearLayout li_body = new LinearLayout(this);
    li_body.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.MATCH_PARENT));
    li_body.setOrientation(0);
    li_body.setBackgroundColor(Color.TRANSPARENT);

    hsv.addView(li_body);

    TextView placeholder = new TextView(this);
    placeholder.setTextColor(Color.TRANSPARENT);
    placeholder.setLayoutParams(new LayoutParams(width - 130,
            LayoutParams.MATCH_PARENT));
    placeholder.setVisibility(View.INVISIBLE);

    li_body.addView(placeholder);

    LayoutInflater inflatex = LayoutInflater.from(this);
    View mainScreen = inflatex.inflate(R.layout.main, null);
    li_body.addView(mainScreen);


    FrameLayout mainFrame = new FrameLayout(this);
    mainFrame.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
            LayoutParams.MATCH_PARENT));
    mainFrame.addView(menu);
    mainFrame.addView(hsv);

    hsv.post(new Runnable() {

        @Override
        public void run() {
            hsv.scrollBy(width - 130, 0);
        }
    });
    setContentView(mainFrame);

にはマップのView mainScreenフラグメントがあります。マップをスクロールできるようにするための解決策はありますhorizontallyか?

4

1 に答える 1

0

これらのパラメーターを組み合わせてみてください。

getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

また

getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);

そして他のパラメータ:

getSlidingMenu().setMode(SlidingMenu.LEFT_RIGHT);

また

getSlidingMenu().setMode(SlidingMenu.LEFT); / getSlidingMenu().setMode(SlidingMenu.RIGHT);

私の記憶が正しければ、あなたの組み合わせは

getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
getSlidingMenu().setMode(SlidingMenu.LEFT_RIGHT);

お役に立てれば!

于 2013-04-09T12:32:02.257 に答える