如何缩小导航图标和工具栏标题之间的差距?
How to reduce the gap between navigation icon and toolbar title?
我的问题是 nav-drawer 图标和工具栏标题之间的额外 space。示例图片如下:
工具栏的xml视图是
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:popupTheme="@style/AppTheme.PopupOverlay" />
我尝试使用下面的代码解决这个问题,但没有发生任何变化。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//toolbar.setTitleMarginStart(0);
toolbar.setTitleMarginStart(-8);
}
有什么办法可以解决这个问题吗?
添加
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
到ToolBar
。
完整代码:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp" />
在工具栏中添加app:contentInsetStartWithNavigation="0dp"
添加这一行 app:contentInsetStartWithNavigation="0dp"
<android.support.v7.widget.Toolbar
android:id="@+id/share"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="@drawable/action_back"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@{title}"
android:background="4855b5"
app:titleTextColor="ffffff"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:contentInsetStartWithNavigation="0dp" />
通过 MaterialToolbar
和 androidx.appcompat.widget.Toolbar
您可以使用这些属性:
contentInsetStartWithNavigation
:当存在导航按钮(例如向上按钮)时,栏内内容视图的最小插入(默认值= 72dp
).
contentInsetStart
:栏内内容视图的最小插入。导航按钮和菜单视图除外(默认值 = 16dp
)
titleMarginStart
:在工具栏标题的开头指定额外的 space。如果同时指定了此属性和 titleMargin
,则此属性优先。边距值应为正数。
只需在您的布局中使用:
<com.google.android.material.appbar.MaterialToolbar
app:contentInsetStartWithNavigation="0dp"
app:titleMarginStart="0dp"
..>
与app:contentInsetStartWithNavigation="0dp"
:
与 app:contentInsetStartWithNavigation="0dp"
和 app:titleMarginStart="0dp"
:
您还可以定义自定义样式:
<style name="MyToolbar" parent="....">
<item name="titleMarginStart">0dp</item>
<item name="contentInsetStart">..dp</item>
<item name="contentInsetStartWithNavigation">..dp</item>
</style>
在 Flutter Android 中使用 titleSpacing: 0, 在 ** App Bar** 布局
** 示例代码 **
appBar: AppBar(
actions: <Widget>[
Icon(Icons.search_rounded),
Icon(Icons.notifications),
Icon(Icons.add_shopping_cart),
],
leadingWidth: 26,
titleSpacing: 0,
backgroundColor: Colors.white70,
leading: Icon(Icons.menu),
elevation: 100.0,
iconTheme: IconThemeData(color: Colors.black),
title: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
appbarIcon,
],
),
)
我的问题是 nav-drawer 图标和工具栏标题之间的额外 space。示例图片如下:
工具栏的xml视图是
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:popupTheme="@style/AppTheme.PopupOverlay" />
我尝试使用下面的代码解决这个问题,但没有发生任何变化。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//toolbar.setTitleMarginStart(0);
toolbar.setTitleMarginStart(-8);
}
有什么办法可以解决这个问题吗?
添加
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
到ToolBar
。
完整代码:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp" />
在工具栏中添加app:contentInsetStartWithNavigation="0dp"
添加这一行 app:contentInsetStartWithNavigation="0dp"
<android.support.v7.widget.Toolbar
android:id="@+id/share"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="@drawable/action_back"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@{title}"
android:background="4855b5"
app:titleTextColor="ffffff"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
app:titleTextAppearance="@style/Toolbar.TitleText"
app:contentInsetStartWithNavigation="0dp" />
通过 MaterialToolbar
和 androidx.appcompat.widget.Toolbar
您可以使用这些属性:
contentInsetStartWithNavigation
:当存在导航按钮(例如向上按钮)时,栏内内容视图的最小插入(默认值=72dp
).contentInsetStart
:栏内内容视图的最小插入。导航按钮和菜单视图除外(默认值 =16dp
)titleMarginStart
:在工具栏标题的开头指定额外的 space。如果同时指定了此属性和titleMargin
,则此属性优先。边距值应为正数。
只需在您的布局中使用:
<com.google.android.material.appbar.MaterialToolbar
app:contentInsetStartWithNavigation="0dp"
app:titleMarginStart="0dp"
..>
与app:contentInsetStartWithNavigation="0dp"
:
与 app:contentInsetStartWithNavigation="0dp"
和 app:titleMarginStart="0dp"
:
您还可以定义自定义样式:
<style name="MyToolbar" parent="....">
<item name="titleMarginStart">0dp</item>
<item name="contentInsetStart">..dp</item>
<item name="contentInsetStartWithNavigation">..dp</item>
</style>
在 Flutter Android 中使用 titleSpacing: 0, 在 ** App Bar** 布局
** 示例代码 **
appBar: AppBar(
actions: <Widget>[
Icon(Icons.search_rounded),
Icon(Icons.notifications),
Icon(Icons.add_shopping_cart),
],
leadingWidth: 26,
titleSpacing: 0,
backgroundColor: Colors.white70,
leading: Icon(Icons.menu),
elevation: 100.0,
iconTheme: IconThemeData(color: Colors.black),
title: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
appbarIcon,
],
),
)