如何更改工具栏子视图的对齐

时间:2015-06-11 19:06:44

标签: android android-layout android-toolbar

我有一个工具栏,我想在xml的布局中添加ImageView。我希望它对齐,而不是默认左对齐。

根据documentation

  

应用程序可能会向工具栏添加任意子视图。它们将出现在布局中的这个位置。如果子视图的Toolbar.LayoutParams指示CENTER_HORIZONTAL的重力值,则在测量完所有其他元素后,视图将尝试以工具栏中剩余的可用空间为中心。

但我不能在任何事情上设定引力。

我的布局

<android.support.v7.widget.Toolbar
    style="@style/ToolbarStyle"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize">

    <ImageView
        android:id="@+id/bluetoothState"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_bluetooth_status_white"
        android:contentDescription="@string/content_description_bluetooth_status"
        android:padding="8dp"/>
</android.support.v7.widget.Toolbar>

Default Alignment

1 个答案:

答案 0 :(得分:37)

android:layout_gravity="right"就是答案。哪个问题链接的文档甚至暗示。 (它提到了引力,但没有提到所需的特定xml属性方式)

无论如何,问题是Android Studio并没有真正建议自定义视图的属性。这包括android.support.v7.widget.Toolbar Design 选项卡不会将layout_gravity列为属性,如果您在文本选项卡上键入它,它将不会自动完成它。

以下完整示例代码..

<android.support.v7.widget.Toolbar
    style="@style/ToolbarStyle"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize">

    <ImageView
        android:id="@+id/bluetoothState"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_bluetooth_status_white"
        android:contentDescription="@string/content_description_bluetooth_status"
        android:padding="8dp"
        android:layout_gravity="right"/>

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