无法使用API​​ v2水平滚动Google地图

时间:2013-04-09 06:07:02

标签: android google-maps-api-2

我正在开发一个我已集成Google map API v2的应用程序。我在运行时使用HorizontalScrollView添加了一个滑动菜单。 问题是我只能垂直滚动地图,因为我尝试水平滚动HorizontalScrollView获取触摸事件。

这是我制作布局的方式。

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

1 个答案:

答案 0 :(得分: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);

希望这有帮助!