在我的应用程序中,我有一个由jfeinstein10开发的滑动菜单。 它在我的应用程序中运行良好;)
我有一个片段,它是MapView的主机。这个片段就像我从Fragment类扩展的其他片段一样。就在这个片段中,当我打开滑动菜单时,菜单内容顶部有黑色封面/图层。当我打开其他片段的菜单时,没有黑色封面。另外,我发现的东西是盒子的高度与片段的高度完全相同。
你以前见过这个问题吗?任何意见或建议将不胜感激。
=> 的更新
根据Selei的建议,我将背景设置为透明。但是,无论我指定的颜色(透明或其他颜色),它仍然可见和黑色:( 这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
map:uiCompass="true"
android:background="#00000000"/>
答案 0 :(得分:2)
解决方案是将map:zOrderOnTop="true"
添加到XML。
有关详细信息,请参阅this link。
答案 1 :(得分:2)
我在这里尝试了所有方法,但没有一个能很好用。使用GoogleOptions将zOrder移动到顶部意味着基本缩放控件隐藏在地图后面 这个链接的最后一个建议是:https://github.com/jfeinstein10/SlidingMenu/issues/168#issuecomment-17065660(ckakei)为我修复了它 诀窍是为布局添加一个空的透明视图:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<FrameLayout
android:id="@+id/view_map"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</FrameLayout>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent" />
我正在片段中膨胀这个视图。我将view_map FrameLayout替换为SuppportMapFragment。
这是该课程的重要部分:
private GoogleMap googleMap;
private SupportMapFragment mapFragment;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.view_map_layout, container,
false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager fm = getChildFragmentManager();
if (mapFragment == null) {
mapFragment = SupportMapFragment.newInstance();
}
if (savedInstanceState == null) {
mapFragment.setRetainInstance(true);
} else {
googleMap = mapFragment.getMap();
}
fm.beginTransaction().replace(R.id.view_map, mapFragment).commit();
}
答案 2 :(得分:0)
将MapView背景设置为透明 - android:background =“#00000000”
答案 3 :(得分:0)
我刚制作了地图复制视图,当滑动菜单打开或关闭时复制地图
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
private void showMapCopy(boolean show) {
View map = findViewById(R.id.map);
View mapCopy = findViewById(R.id.map_copy);
if (show) {
map.setDrawingCacheEnabled(true);
Bitmap bitmap = map.getDrawingCache();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
mapCopy.setBackgroundDrawable(new BitmapDrawable(getResources(), bitmap));
else
mapCopy.setBackground(new BitmapDrawable(getResources(), bitmap));
mapCopy.setVisibility(View.VISIBLE);
} else {
map.setDrawingCacheEnabled(false);
mapCopy.setVisibility(View.GONE);
}
}
滑动菜单打开监听器
mMenu.setOnClosedListener(new OnClosedListener() {
@Override
public void onClosed() {
showMapCopy(false);
}
});
OnOptionItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.abs__home:
case android.R.id.home:
showMapCopy(true);
mMenu.toggle();
return true;
default:
return super.onOptionsItemSelected(item);
}
}