【问题标题】:Remove large padding after hamburger (menu) icon in Android Toolbar?删除Android工具栏中汉堡包(菜单)图标后的大填充?
【发布时间】:2016-12-08 07:16:05
【问题描述】:

这是菜单图标后的大填充间隙的图片:

这发生在我的项目一个月没有工作(暑期学校)之后。在我更新 Android Studio 后,我刚刚回到它并注意到工具栏上的这个间隙比正常情况要大。我在 SO 上找不到任何关于此的问题/解决方案。如果有人可以提供帮助,将不胜感激。

我正在通过这样做加载汉堡包图标(每一行都正确放置在应用程序中,在类声明、onCreate() 等中。为了简单起见,我这样写。):

ActionBarDrawerToggle mDrawerToggle;
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), dl, toolbar, R.string.nav_open, R.string.nav_closed)
mDrawerToggle.syncState();

这是我的工具栏的 xml 代码:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:minHeight="?attr/actionBarSize"
    app:layout_scrollFlags="scroll|enterAlways"
    app:title="Test Title">

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

我尝试处理各种contentInset xml 属性,但没有一个影响菜单图标后的间距。

编辑:这个link 显示了我曾经拥有的东西(在页面中间找到)。如果您注意到标题和汉堡图标之间的间距,则间距没有此处显示的图片那么宽。好像间距增加了一倍之类的。

【问题讨论】:

  • 对以下两个答案的附加说明:正如他们所说,它应该放在工具栏布局中。我尝试将它放在主题中,但它没有作为工具栏布局的主题工作。

标签: android android-toolbar


【解决方案1】:

我想通了!我必须设置

app:contentInsetStartWithNavigation="0dp"

在我的 Toolbar 布局中。

【讨论】:

  • 这个新的填充是在支持库 24.0.0+ 中引入的,如下所示:code.google.com/p/android/issues/detail?id=213826
  • @kefs 很有趣。不知道为什么,看起来间距太大了。
  • 谢谢!我们也可以通过编程方式进行toolbar.setContentInsetStartWithNavigation(0);
  • app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:contentInsetStartWithNavigation="0dp"
  • 超级!太棒了!
【解决方案2】:

将这些属性添加到您的Toolbar

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

这将禁用 Toolbar 标题的插入开始填充

【讨论】: