1. ホーム
  2. android

[解決済み] ツールバーがステータスバーの下に重なっている

2022-04-20 09:39:23

質問

アクティビティにappcompat v21のツールバーを表示させたいのですが、どうすればいいですか?しかし、私が実装しているツールバーは、ステータスバーの下に重なっています。どうしたら直せますか?

以下は、アクティビティレイアウトのxmlです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

ツールバーの表示です。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary" />

テーマのスタイルです。

<style name="AppTheme" parent="MaterialNavigationDrawerTheme.Light.DarkActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
</style>

解決方法は?

使用方法 android:fitsSystemWindows="true" をレイアウトのルートビュー(あなたの場合はLinearLayout)で使用します。 そして android:fitsSystemWindows

のようなシステムウィンドウに基づいてビューのレイアウトを調整するための内部属性です。 ステータスバーとして trueの場合、このビューのパディングを調節して のためのスペースを提供します。このビューが 非エンベデッドアクティビティであること。

ブール値で、"true" または "false" のいずれかである必要があります。

これはまた、リソースへの参照である場合もある(形式は "@[package:]type:name")またはテーマ属性(形式は このタイプの値を含む "?[package:][type:]name") 。

これは、グローバル属性リソースシンボル fitsSystemWindowsです。