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:
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 .
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");
}
}
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>
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>
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"
.../>