【问题标题】:space between toolbar icon and toolbar title工具栏图标和工具栏标题之间​​的空间
【发布时间】:2018-10-04 15:45:56
【问题描述】:

我想在toolbar 图标和工具栏标题之间​​放置空格,并且我想在我的应用程序中将statusbar 的颜色更改为与toolbar 的颜色相同,谁能帮忙 目前它看起来像这样:

这是我的代码:

public class AbstractActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_abstract);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(R.drawable.ic_astrological_sun);
  }
}

<?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="#0F6177"
    app:popupTheme="@style/AppTheme.PopupOverlay" >
    </android.support.v7.widget.Toolbar>
  </LinearLayout>

【问题讨论】:

    标签: android


    【解决方案1】:

    这里添加app:titleMarginStart="32dp"solve。

    注意app前缀

    在上下文中:

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_main"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:layout_scrollFlags="scroll|enterAlways"
        app:logo="@drawable/ic_launcher"
        app:title="@string/app_name"
        app:titleMarginStart="32dp" />
    

    【讨论】:

      【解决方案2】:

      使用工具栏默认标题边距左 16dp 我们可以用app:contentInsetStart="100dp"改变它

      或者如果你有一个导航图标,标题边距左 56+16=72dp 默认, 所以你可以用app:contentInsetStartWithNavigation="56dp"改变它

      【讨论】:

      • 在工具栏上设置了徽标时,这不起作用。
      【解决方案3】:

      添加app:titleMarginStart="12dp",它就像魅力一样工作

       <android.support.v7.widget.Toolbar
                      android:id="@+id/toolbar"
                      android:layout_width="match_parent"
                      android:layout_height="?attr/actionBarSize"
                      app:layout_scrollFlags="scroll|enterAlways"
                      app:logo="@drawable/ic_arrow_back_white_24dp"
                      app:title="@string/app_name"
                      app:titleMarginStart="12dp" />
      

      【讨论】:

        【解决方案4】:

        选项1:不推荐:

        在您的文本之前使用space 设置标题。例如" Your title"

        选项 2:在您的 Toolbar 下添加您的自定义 TextView,您可以在您的 xml 布局或您的活动类中自定义此 TextView

        例如:

        <android.support.v7.widget.Toolbar 
                android:id="@+id/toolbar" 
                android:layout_width="match_parent" 
                android:layout_height="?attr/actionBarSize" 
                android:background="#0F6177" 
                app:popupTheme="@style/AppTheme.PopupOverlay" > 
                    <TextView
                        android:id="@+id/text_toolbar_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="left|center_vertical"
                        android:layout_marginLeft="5dp"
                        android:text="@string/app_name"
                        android:textColor="@android:color/white"
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        android:textStyle="bold" />
        
        </android.support.v7.widget.Toolbar> 
        

        【讨论】: