web-dev-qa-db-ja.com

Android API 21ツールバーのパディング

Android SDK APIバージョン21(サポートライブラリ)を使用して新しいツールバーの余分な余白を削除する方法を教えてください。

私はこの絵の赤い矢印について話しています。 enter image description here

これが私が使っているコードです:

<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に設定しましたが、それでもSpinner周辺にはパディングがあります。余分なパディングをなくすために、私は何をしましたか?

編集なぜ私がこれをやろうとしているのか疑問に思う人がいます。

材料設計の仕様によると、スピナーは左側から72dpになるはずです。 desc

私のスピナーを適切に配置するために、Googleがそこに入れたパディングを無力化する必要があります。 desc

編集2

下記のChris Baneの答えに従って、私はcontentInsetStartを0に設定しました。サポートライブラリのためにあなたはアプリ名前空間を使う必要があるでしょう:

<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>

これが誰かに役立つことを願っています。数日間混乱していました。

181
James Cross

左のインセットはツールバーのcontentInsetStartが原因で発生します。デフォルトは16dpです。

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

サポートライブラリv24.0.0用に更新:

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

265
Chris Banes

上記の答えは正しいですが、それでも問題を引き起こす可能性があることが1つあります(少なくともそれは私にとって問題を引き起こしました)。

私は以下を使用しました、そして、それはより古い装置できちんと動きません -

Android:contentInsetStart="0dp"
Android:contentInsetLeft="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

トリックはここにちょうど次を使用しています -

app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

そして取り除く -

Android:contentInsetStart="0dp"
Android:contentInsetLeft="0dp"

そして今、それはすべてのデバイスを通じて正常に動作するはずです。

それが役に立てば幸い。

140
Varundroid

他の人がここでつまずいた場合は、パディングを設定することもできます。

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

int padding = 200 // padding left and right

toolbar.setPadding(padding, toolbar.getPaddingTop(), padding, toolbar.getPaddingBottom());

またはcontentInset

toolbar.setContentInsetsAbsolute(toolbar.getContentInsetLeft(), 200);
9
worked

この2行をツールバーに追加するだけです。次に、新しく削除された左側のスペースbcozをデフォルトで16dp取得します。

Android:contentInsetStart="0dp"
app:contentInsetStart="0dp"
9
Amit Walke

ツールバーを次のようにします。

<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/menuToolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="0dp"
Android:background="@color/white"
Android:contentInsetLeft="10dp"
Android:contentInsetRight="10dp"
Android:contentInsetStart="10dp"
Android:minHeight="?attr/actionBarSize"
Android:padding="0dp"
app:contentInsetLeft="10dp"
app:contentInsetRight="10dp"
app:contentInsetStart="10dp"></Android.support.v7.widget.Toolbar>

追加する必要があります

contentInset

スペースを追加するための属性

詳細については、このリンクをたどってください - Androidのヒント

3
Aneh Thakur

の組み合わせ

Android:padding="0dp"ツールバーのxml内

そして

mToolbar.setContentInsetsAbsolute(0, 0)コード内

これは私のために働きました。

3
Jraco11

これが私がしたことで、Androidのすべてのバージョンで完璧に機能します。

toolbar.xml

<Android.support.v7.widget.Toolbar
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="56dp"
    Android:background="@color/primary_color"
    app:theme="@style/ThemeOverlay.AppCompat"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <TextView
        Android:id="@+id/toolbar_title"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:layout_marginLeft="16dp" <!-- Add margin -->
        Android:layout_marginStart="16dp"
        Android:gravity="left|center"
        Android:text="Toolbar Title" <!-- Your title text -->
        Android:textColor="@color/white" <!-- Matches default title styles -->
        Android:textSize="20sp"
        Android:fontFamily="sans-serif-medium"/>

</Android.support.v7.widget.Toolbar>

MyActivity.Java(デフォルトのツールバータイトルを非表示にする)

getSupportActionBar().setDisplayShowTitleEnabled(false); // Hide default toolbar title

表示されているキーラインの結果

enter image description here

2
Michael

これは私のアンドロイド7.11電話で私のために働く:

<!-- TOOLBAR -->
<Android.support.v7.widget.Toolbar
    Android:id="@+id/toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    app:contentInsetStartWithNavigation="0dp">

    <TextView
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
        Android:id="@+id/toolbar_title"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="@string/create_account_title"
        Android:textColor="@color/color_dark_grey"/>

</Android.support.v7.widget.Toolbar>

注:パディング= 0、contentInsetLeft = 0、またはcontentInsetStart = 0で、まったく成功しませんでした。

1

それであなたが72dpを必要とするならば、あなたはただxmlファイルのパディングの違いを加えることができなかったか?このように、あなたは彼らが私たちに使用して欲しいAndroidをデフォルトのインセット/パディングに保ちます。

だから:72-16 = 56

そのために、インデント/マージン合計72dpになるように56dpパディングを追加します。

あるいは、Dimen.xmlファイルの値を変更するだけでもかまいません。それが私が今やっていることです。新しい適切なAndroidの方法で実装されると、ツールバーを含むすべて、レイアウト全体が変更されます。

Dimenリソースファイル

追加したリンクは、変更したため2dpのDimen値が表示されていますが、デフォルトは16dpに設定されています。ちなみに...

0
JamisonMan111