web-dev-qa-db-fra.com

Supprimer la marge dans l'icône de la barre d'outils Android

J'obtiens cette marge étrange dans la barre d'outils de mon application entre l'icône et l'icône de navigation dans la barre d'outils (comme dans l'image) . Je n'ai aucune idée de son origine ni de la façon de la supprimer. Après avoir cherché sur Internet, j'ai trouvé ceci:

<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_height="wrap_content"
    Android:layout_width="match_parent"
    Android:fitsSystemWindows="true"
    Android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    Android:background="?attr/colorPrimaryDark"
    Android:layout_margin="0dp"
    Android:contentInsetLeft="0dp"
    Android:contentInsetRight="0dp"
    Android:contentInsetStart="0dp"
    Android:contentInsetEnd="0dp"
    Android:padding="0dp"
    app:contentInsetLeft="0dp"
    app:contentInsetRight="0dp"
    app:contentInsetStart="0dp"
    app:contentInsetEnd="0dp">
</Android.support.v7.widget.Toolbar>

Mais je reçois toujours cette marge comme dans la figure:  Margin

Edit >> Solution 

Après avoir utilisé la mise en page reliée, je me suis dit que la plupart des marges sont représentées par l’icône (comme sur la figure). Mais puis-je toujours supprimer cette marge et changer la taille de l'icône et du texte du titre .  enter image description here

Modifier

Suite à la solution @Amir: Helper for Java:

class BasicActivity extends AppCompatActivity{
    protected Toolbar mToolbar;    /// Initilize it in onCreate methode
    .....

     protected void setupToolbar(String title) {
        toolbar=(Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ActionBar ab = getSupportActionBar();
        if (ab != null) {
            ab.setDisplayHomeAsUpEnabled(true);
            ab.setDisplayShowHomeEnabled(true);
        }

       if (!TextUtils.isEmpty(title)) {
        setTitle(title);
    }
}

}

Et dans votre classe d'activité:

class Main extends BasicActivity{
     @override
     protected void onCreate(Bundle saved){
          super.onCreate(saved);
          ....
          setupToolbar("MAIN");
     }
}
14
Anish Silwal

Vous pouvez facilement supprimer Marge | padding entre le titre et l'icône de retour avec:

app:contentInsetStartWithNavigation="0dp"

Marge | padding Dans le côté gauche/droit de la barre d’outils avec:

app:contentInsetStart="0dp"

Aussi, si vous avez besoin de plus de personnalisation, procédez comme suit:

<?xml version="1.0" encoding="utf-8"?>
<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="?attr/actionBarSize"
    Android:background="@color/color_primary"
    app:contentInsetEnd="0dp"
    app:contentInsetLeft="0dp"
    app:contentInsetRight="0dp"
    app:contentInsetStart="0dp"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">


    <RelativeLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:gravity="center_vertical">

        <ImageView
            Android:id="@+id/icon_toolbar_left"
            style="@style/IconFont.Large"
            Android:layout_width="48dp"
            Android:layout_height="match_parent"
            Android:layout_alignParentLeft="true"
            Android:layout_alignParentStart="true"
            Android:background="?attr/selectableItemBackground" />



        <TextView
            Android:id="@+id/text_toolbar_title"
            style="@style/Textview.White.MediumSmall"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:layout_toLeftOf="@+id/icon_toolbar_right"
            Android:layout_toRightOf="@+id/icon_toolbar_left"
            Android:gravity="center"
            Android:text="@string/nav_category"/>


        <ImageView
            Android:id="@+id/icon_toolbar_right"
            style="@style/IconFont.Large"
            Android:layout_width="48dp"
            Android:layout_height="match_parent"
            Android:layout_alignParentEnd="true"
            Android:layout_alignParentRight="true"
            Android:background="?attr/selectableItemBackground"/>

    </RelativeLayout>

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

Vous pouvez ajuster les marges en modifiant le thème et le style, comme ceci:

<style name="cusToolbarNavigationButtonStyle" parent="@style/Widget.AppCompat.Toolbar.Button.Navigation">
    <!--default is 56dp-->
    <item name="Android:minWidth">0dp</item>  
    <item name="Android:paddingLeft">16dp</item>
    <item name="Android:paddingRight">16dp</item>
</style>

<style name="cusToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
    <!--default 4dp-->
    <item name="titleMargin">0dp</item> 
    <!--default @dimen/abc_action_bar_content_inset_with_nav-->
    <item name="contentInsetStartWithNavigation">0dp</item> 
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="toolbarNavigationButtonStyle">@style/cusToolbarNavigationButtonStyle</item>
    <item name="toolbarStyle">@style/cusToolbarStyle</item>

</style>
1
任志勇

Si vous souhaitez supprimer la marge/le remplissage du titre dans un CollapsingToolbarLayout, vous trouverez peut-être ceci utile:

<Android.support.design.widget.CollapsingToolbarLayout
    app:expandedTitleMarginStart="0dp"
    .../>
0
jobbert