带有滑动菜单的Android MapView模糊菜单

时间:2013-02-12 20:32:04

标签: android android-layout android-mapview android-maps-v2

我在使用此滑动菜单https://github.com/iPaulPro/SlidingMenu的活动中有一个android maps api v2的地图视图。除了在地图页面上,滑动菜单效果很好。滑动菜单上有一个黑色视图,它是地图的确切大小。这是一个示例,地图高度设置为100dp,以概述我的意思。

View Issue

如果我触摸该视图,它将会消失。我如何摆脱它或使其透明?我试过了requestTransparentRegion()技巧。没有骰子。

3 个答案:

答案 0 :(得分:13)

发现此堆栈溢出ViewPager with Google Maps API v2: mysterious black view并使用此类代替普通的地图片段。

package com.myapp.gms.maps;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import com.google.android.gms.maps.SupportMapFragment;

/**
 * @author btate
 */
public class TransparentSupportMapFragment extends SupportMapFragment {

    public TransparentSupportMapFragment() {}

    @Override
    public View onCreateView(LayoutInflater inflater, 
                                 ViewGroup view, 
                                 Bundle savedInstance) {

        View layout = super.onCreateView(inflater, view, savedInstance);
        FrameLayout frameLayout = new FrameLayout(getActivity());
        frameLayout.setBackgroundColor(
           getResources().getColor(android.R.color.transparent));
        ((ViewGroup) layout).addView(frameLayout,
            new ViewGroup.LayoutParams(
               LayoutParams.MATCH_PARENT, 
               LayoutParams.MATCH_PARENT
            )
        );
        return layout;
    }

}

答案 1 :(得分:0)

还有一个解决方案可以解决这个问题。我在另一个片段中显示MapFragment。 MapFragment动态添加到FrameLayout中。

解决方案是在滑动菜单的打开和关闭事件上使用frameLayout.setVisibility(View.Visible)frameLayout.setVisibility(View.Gone)。它不需要添加额外的视图。黑色区域完全消失了。

getSlidingMenu().setOnOpenListener(
    new OnOpenListener() {
        @Override
        public void onOpen() {
            frameLayout.setVisibility(View.GONE);
        }
    }
);

getSlidingMenu().setOnClosedListener(
    new OnClosedListener() {

        @Override
        public void onClosed() {
            frameLayout.setVisibility(View.VISIBLE);
        }
    }
);

答案 2 :(得分:0)

透明SupportMapFragment解决了android 2.3.7的问题 谢谢!