我在使用此滑动菜单https://github.com/iPaulPro/SlidingMenu的活动中有一个 android maps api v2 的地图视图。除了在地图页面上,滑动菜单效果很好。滑动菜单上有一个黑色视图,它是地图的确切大小。这是一个将地图高度设置为 100dp 的示例,以概述我的意思。
如果我触摸那个视图,它就会消失。我将如何摆脱它或使其透明?我已经尝试过 requestTransparentRegion() 技巧。那里没有骰子。
我在使用此滑动菜单https://github.com/iPaulPro/SlidingMenu的活动中有一个 android maps api v2 的地图视图。除了在地图页面上,滑动菜单效果很好。滑动菜单上有一个黑色视图,它是地图的确切大小。这是一个将地图高度设置为 100dp 的示例,以概述我的意思。
如果我触摸那个视图,它就会消失。我将如何摆脱它或使其透明?我已经尝试过 requestTransparentRegion() 技巧。那里没有骰子。
发现这个堆栈溢出帖子ViewPager with Google Maps API v2:神秘的黑色视图并使用这个类代替法线贴图片段。
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;
}
}
这个问题还有另一种解决方案。我在另一个片段中显示 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);
}
}
);
TransparentSupportMapFragment 解决了 android 2.3.7 的问题 谢谢!