透明系统栏下的Android地图

时间:2017-10-02 13:52:09

标签: android android-layout android-styles mapbox-android

我有一个相当简单的布局:

<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,但更改状态栏的透明度/不透明度。我只是没有办法做到这一点。

0 个答案:

没有答案