对齐工具栏中的图标

时间:2016-07-26 13:51:37

标签: android android-layout alignment android-toolbar

如何将工具栏中的图标与中间对齐?我已使用getSupportActionBar().setDisplayShowTitleEnabled(false);删除了标签 最好为我的工具栏创建一个xml文件吗?

2 个答案:

答案 0 :(得分:2)

是的在工具栏中创建一些布局,在布局中你可以有其他控件(视图)。

工具栏就像其他布局一样,你可以嵌套它们。

<android.support.v7.widget.Toolbar
      android:id="@+id/toolbar_actionbar"
      android:layout_width="match_parent"
      android:layout_height="?attr/actionBarSize"
      app:layout_scrollFlags="scroll|enterAlways">
      <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="?android:attr/actionBarSize">
           <TextView
                 android:id="@+id/title"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentLeft="true"
                 android:layout_alignParentStart="true"
                 android:layout_centerVertical="true"
                 android:text="@string/news"/>
      </RelativeLayout>
  </Toolbar>

答案 1 :(得分:1)

以编程方式,您可以按照以下方式执行此操作:

mToolbar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            ImageView imageView = (ImageView)mToolbar.findViewById(R.id.logo);
            if( mToolbar == null ){
                return;
            }
            int toolbarWidth = mToolbar.getWidth();
            int imageWidth = imageView.getWidth();
            imageView.setX((toolbarWidth-imageWidth)/2);
        }
    });

自定义layout_toolbar.xml:

<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"
        style="@style/Toolbar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/toolbar_height"                                                                   
        android:background="@drawable/toolbar_background"
        android:focusable="false"                                
        app:titleTextAppearance="@style/AppTheme.Toolbar.Title">
        <ImageView
            android:id="@+id/logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/toolbar_logo"/>

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