Подтвердить что ты не робот

Как изменить выравнивание детальных представлений панели инструментов

У меня есть панель инструментов, и я хочу добавить ImageView в свой макет в xml. Я хочу, чтобы он выравнивался по правому краю, а не по умолчанию слева.

В соответствии с документация:

Приложение может добавлять произвольные дочерние представления на панель инструментов. Они появятся в этой позиции в макете. Если дочернее представление Toolbar.LayoutParams указывает значение Gravity для 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

4b9b3361

Ответ 1

android:layout_gravity="right" - ответ. К какой документации относится даже ссылка. (хорошо он упоминает гравитацию, но не в конкретном атрибуте атрибута xml)

В любом случае, проблема была в Android Studio, на самом деле не предлагающей атрибуты для пользовательских представлений. Это включает android.support.v7.widget.Toolbar. Вкладка "Дизайн" не будет отображать 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>