与其他类似情况相比,似乎是一个独特的案例,但我在FrameLayout中有一个地图片段,它有一个“半透明”工具栏和状态栏(颜色较深,颜色透明)。
我放入顶部容器
机器人:fitsSystemWindows = “假”
正如其他帖子中所建议的那样,并且在我的其他活动中有效,但是我的地图片段没有。
我希望地图占据整个屏幕,并在状态栏下滑动,我希望工具栏位于状态栏的正下方。我在工具栏的顶部添加了一些边距,希望将其压低到状态栏下方,但它与状态栏之间保持一定的间隙,而且在不知道状态的确切高度的情况下设置直线上边距是不可靠的设备上的酒吧。
在第一张图片中,我没有设置margin_top。在第二个中,您可以看到间隙,如果仔细观察,您可以看到状态栏背景与状态项相关的位置,它在底部触摸它们就好像它被向上推。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false">
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#59000000"
tools:ignore="UnusedAttribute"/>
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Make to run your application only in portrait mode
getWindow().setStatusBarColor(getResources().getColor(R.color.status_bar_dark));
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayShowTitleEnabled(true);
}
...}
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>