web-dev-qa-db-ja.com

Androidツールバーアイコンの余白を削除

アプリのツールバーのアイコンとナビゲーションアイコン(画像のように)の間にこの奇妙な余白があります。私はそれがどこから来たのか、それをどのように削除するのかわからない。インターネットを検索した後、私はこれを見つけました:

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

しかし、図のようにまだこのマージンが得られます: Margin

編集>>解決策

レイアウトバインドを使用した後、余白の多くはアイコンにあると考えました(図のように)。ただし、このマージンを削除して、アイコンとタイトルテキストのサイズを変更することはできます。 enter image description here

編集

次の@Amirソリューション: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);
    }
}

}

そしてあなたの活動クラスで:

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

次のようにして、タイトルと戻るアイコンの間のマージン|パディングを簡単に削除できます。

app:contentInsetStartWithNavigation="0dp"

マージン|パディングツールバーの左側/右側:

app:contentInsetStart="0dp"

また、さらにカスタマイズが必要な場合は、次のようにします。

<?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>
46
Amir

次のようにテーマとスタイルを変更することにより、マージンを調整できます。

<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>
2
任志勇

CollapsingToolbarLayoutのタイトルからマージン/パディングを削除する場合は、次のように便利です。

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