Целью того, что я хочу достичь, является центрирование пользовательского логотипа на ActionBar. У меня есть следующий пользовательский макет для моего ActionBar:Каков наилучший способ правильно настроить логотип на ActionBar?
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@string/app_name"
android:src="@drawable/logo_header" />
</FrameLayout>
Это дает ожидаемый визуальный результат, если не будет какой-либо кнопки действий иконки/перелив справа. Если есть, логотип будет центрирован относительно доступного пространства на ActionBar, что делает его похожим на то, что он не центрирован, потому что логотип будет выровнен слева.
Высокий уровень, что я хочу попробовать, рассчитать разницу между абсолютной шириной экрана ActionBar и доступной шириной, а затем применить на логотипе layoutMarginLeft
, равный значению этой разницы. Я думаю, что могу добиться этого, получив количество видимых пунктов меню и умножив их по их ширине (я полагаю, что могу найти для него размер по умолчанию).
Однако, прежде чем я это сделаю, мне было интересно, есть ли более простое решение, которое я пропускаю? Может ли это быть разрешено только через пользовательский макет, например?
Спасибо!
Что касается тени, я создал файл XML и помещен это ниже. Если вы хотите, чтобы я загрузил этот файл, я обновлю ответ. –
Спасибо, Евгений, ты действительно думал из коробки на этом :) –