我有一个相当简单的布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin" />
</FrameLayout>
我希望地图显示在完整透明系统栏(导航栏和状态栏)下。为了解决这个问题,我将状态和导航栏颜色设置为android:color/transparent
:
<style name="Theme.Lab.Map">
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:fitsSystemWindows">false</item>
</style>
但不幸的是,地图没有出现在系统栏下面。相反,默认活动背景颜色是可见的
我将fitSystemWindows
设置为false,因为它将android:translucentStatusBar
设置为true
时有所帮助。 translucentStatusBar
的问题是,状态栏只是半透明的,不像我希望的那样完全透明。
我不得不告诉地图 - 或活动 - 它可以扩展到系统组件下面。
修改
也可以使用translucentStatusBar
,但更改状态栏的透明度/不透明度。我只是没有办法做到这一点。