我在姜饼上打开抽屉时有这个问题,后面是google map v2。应该在屏幕后面的地图是最重要的。
现在我可以通过在抽屉打开时隐藏地图并在关闭时显示它来绕过这一点,但如果有人提出任何问题,我会寻找更优雅的解决方案吗?
答案 0 :(得分:13)
使用FrameLayout包装SupportMapFragment并将透明View放在上面,如下所示:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Map fragment -->
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
<!-- Transparent view -->
<View
android:layout_width="match_parent"
android:layout_height="match_parent" />
使用Android 4.0.4测试 - 对我来说很好用
答案 1 :(得分:7)
google maps api v2和黑色空间存在错误。也许你有类似的问题。有关解决方案,请查看 https://github.com/jfeinstein10/SlidingMenu/issues/228 和这里: https://github.com/jfeinstein10/SlidingMenu/issues/168
据我所知,解决方案就是其中之一:
答案 2 :(得分:6)
我在ICS 4.0.4上遇到了同样的问题。 jfeinstein10的github帖子中提到的解决方案似乎对我不起作用。但我找到了一种解决方法,即使它不是最好的。
创建DrawerToggle对象时,我会覆盖此事件
@Override
public void onDrawerSlide(View drawerView, float slideOffset)
{
super.onDrawerSlide(drawerView, slideOffset);
mDrawerLayout.bringChildToFront(drawerView);
mDrawerLayout.requestLayout();
mDrawerLayout.setScrimColor(Color.TRANSPARENT);
}
bringChildToFront和requestLayout方法应该克服抽屉渲染问题,而setScrimColor将摆脱阴影。太糟糕了,我还没有找到一个解决方法来正确渲染阴影。希望这会有所帮助。
答案 3 :(得分:3)
您应该覆盖onDrawerSlide函数并将抽屉移到前面
Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
DrawerLayout Drawer = (DrawerLayout) findViewById(R.id.DrawerLayout);
mDrawerToggle = new ActionBarDrawerToggle(this, Drawer, toolbar, R.string.openDrawer, R.string.closeDrawer) {
@Override
public void onDrawerSlide(View drawerView, float slideOffset)
{
super.onDrawerSlide(drawerView, slideOffset);
Drawer.bringChildToFront(drawerView);
Drawer.requestLayout();
Drawer.setScrimColor(Color.TRANSPARENT);
}
};