如何向 ActionBar 项目添加填充

How to add padding to ActionBar item

我为此搜索了解决方案,有些人建议我在设置操作栏标题时包含空 space,如下所示:

actionBar.setTitle("   Ribbit");

它工作正常,就像这样,但我想知道是否有更好的方法来实现这一点,例如在某处添加 android:padding xml 属性。

It works fine, like this but I was wondering if there is a better way of achieving this, for example adding the android:padding xml attribute somewhere.

更好的方法肯定是为您的 ActionBar 创建自定义布局(视图)(现在它应该被称为工具栏,因为 ActionBar 现在已被弃用)。

使用自定义布局,您可以根据需要设置 ActionBar 的样式。可能性是无限的。 Here 是您可以开始的点。

最好的方法是使用 Material 设计工具栏小部件。

创建工具栏app_bar.xml文件,你可以给你想要的名字。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">

  <!-- This textView will act as Title of page which you can make it Center or change padding/margin to change its position -->
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="30sp"
    android:paddingTop="0dp"
    android:text="Home"
    android:layout_gravity="center"
    android:id="@+id/toolbar_title" />
 </android.support.v7.widget.Toolbar>

确保您在 styles.xml 和

中选择了主题
"Theme.AppCompat.NoActionBar"

之后,您需要在 mainActivity.xml 布局文件中初始化此工具栏,为此,

 <include
        android:id="@+id/app_toolbar"
        layout="@layout/app_toolbar"/>

然后在MainActivity中,需要创建Toolbar工具栏的实例。然后,在 setContentView() 之后 使用您的

添加以下内容
 toolbar = (Toolbar) findViewById(R.id.app_toolbar);
    setSupportActionBar(toolbar);

确保禁用

ActionBar actionBar = getSupportActionBar();    
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);

因此它不会重复您工具栏的标题,而是从应用程序继承了一个标题。