1. ホーム
  2. android

[解決済み】Android API 21 ツールバーパディング

2022-04-13 05:22:50

質問

Android SDK APIバージョン21(サポートライブラリ)を使用した新しいツールバーの余分なパディングを取り除くにはどうすればよいですか?

この写真の赤い矢印の部分についてです。

以下は、私が使っているコードです。

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:background="?attr/colorPrimary"
        android:padding="0dp"
        android:layout_margin="0dp">

        <RelativeLayout
            android:id="@+id/action_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:background="#000000">

            <Spinner
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        </RelativeLayout>
</Toolbar>

ご覧のように、関連するパディングをすべて0に設定しましたが、スピナーの周囲にはまだパディングが残っています。何か間違ったことをしたのでしょうか。また、余分なパディングを取り除くにはどうしたらよいのでしょうか。

編集 なぜこんなことをしようとしているのかという疑問の声もあります。

Material Designの仕様では、スピナーは左側から72dpの位置にあるはずです。

スピナーを適切に配置するために、Googleがそこに置いたパディングを無効にする必要があります。

編集2

下記のChris Baneの回答通り、contentInsetStartを0に設定しました。サポートライブラリには、app namespaceを使用する必要があります。

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

     <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="@dimen/action_bar_height"
        android:background="?attr/colorPrimary"
        android:contentInsetStart="0dp"
        android:contentInsetLeft="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

</android.support.v4.widget.DrawerLayout>

これが誰かの役に立てばいいのですが、私は数日間混乱していました。

解決方法は?

左のインセットは、ツールバーの contentInsetStart で、デフォルトは16dpです。

これを72dpに変更し、キーラインに合わせます。

サポートライブラリv24.0.0に対応したアップデートを行いました。

Material Designの仕様に合わせるために、追加属性があります。 contentInsetStartWithNavigation で、デフォルトは16dpです。ナビゲーションアイコンもある場合は、これを変更してください。