Кто-нибудь знает, как установить отступ между домашним значком ActionBar и заголовком?
android
android-actionbar
Alesqui
источник
источник
Ответы:
Я адаптировал ответ Cliffus и назначил логотип для рисования в моем определении стиля панели действий, например, как это в res / style.xml:
Drawable выглядит как Cliffus (здесь со значком запуска приложения по умолчанию) в res / drawable / actionbar_space_between_icon_and_title.xml:
В android_manifest.xml вы все еще можете установить другой значок приложения (значок запуска на «рабочем столе». Любое другое определение логотипа здесь отображается в действиях без панели действий.
источник
РЕДАКТИРОВАТЬ : убедитесь, что вы установили этот рисунок как ЛОГОТИП , а не как значок вашего приложения, как это сделали некоторые из комментаторов.
Просто сделайте XML-файл доступным для рисования и поместите его в папку ресурсов "drawable" (без какой-либо плотности или другой конфигурации).
Последний шаг - установить эту новую возможность рисования как логотип в вашем манифесте (или на объекте Actionbar в вашей деятельности).
Удачи!
источник
Я также столкнулся с аналогичной проблемой, в моем случае мне пришлось динамически устанавливать заголовки для каждого действия в зависимости от содержимого.
Так что это сработало для меня.
Если все, что вам нужно, это интервал, это самое простое решение, которое я мог придумать.
источник
app:titleMarginStart
атрибут в XML макета.Вот как я смог установить отступ между значком дома и заголовком.
Однако я не смог найти способ настроить это с помощью стилей ActionBar xml. То есть следующий XML не работает:
Однако, если вы хотите добиться этого с помощью xml, эти две ссылки могут помочь вам найти решение:
https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml
(Это фактический макет, используемый для отображения значка дома на панели действий) https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/action_bar_home.xml
источник
padding
, похоже, он используетсяmarginEnd
с api 17, что, вероятно, нарушит это решение. Смотрите мой нижеЭто частый вопрос в материальном дизайне, так как вы можете захотеть совместить заголовок панели инструментов с содержимым фрагмента ниже. Для этого вы можете переопределить отступ по умолчанию «12dp», используя атрибут contentInsetStart = «72dp» в макете toolbar.xml, как показано ниже.
toolbar.xml
Затем в своей деятельности позвоните
И в итоге вы получите следующее:
источник
app:titleMarginStart="dimension"
возможность прямого таргетинга на заголовок.contentInsetStart
поставить пробел между значком дома и заголовком, ответ, по крайней мере, мог бы так сказать. В моем тесте толькоcontentInsetStart
что было помещено пробел перед логотипом (который, по общему признанию, не то же самое, что и значок дома).Для меня сработала только следующая комбинация, протестированная с API 18 до 24
где в "приложении" находится:
xmlns:app="http://schemas.android.com/apk/res-auto"
например.
источник
Если вы используете панель инструментов из AppCompat (android.support.v7.widget.Toolbar,> = версия 24, июнь 2016 г.), отступ между значком и заголовком можно изменить с помощью следующего значения:
Чтобы улучшить мой ответ, вы можете использовать его на своей панели инструментов непосредственно в своей деятельности или вы можете создать новый файл макета для своей панели инструментов. В этом случае вам просто нужно импортировать @id панели инструментов, используя свойство include для каждого необходимого представления.
Затем вы можете импортировать свой макет в свой activity.xml.
источник
Использование
titleMarginStart
работает для меня. Пример Xamarin:Установите логотип так:
источник
Я использовал \ t перед названием и работал на меня.
источник
Я использую собственное изображение вместо текста заголовка по умолчанию справа от логотипа моего приложения. Это настроено программно, как
Проблемы с приведенными выше ответами для меня заключаются в том, что предложение @ Cliffus не работает для меня из-за проблем, которые другие указали в комментариях, и хотя настройка программного заполнения @dushyanth могла работать в прошлом, я бы подумал, что тот факт, что интервал теперь устанавливается с использованием
android:layout_marginEnd="8dip"
API 17, ручная установка заполнения не должна иметь никакого эффекта. См. Ссылку, которую он разместил на git, чтобы проверить его текущее состояние.Простым решением для меня является установка отрицательного поля для моего пользовательского представления в панели действий, например
android:layout_marginLeft="-14dp"
. Быстрый тест показывает, что у меня это работает на 2.3.3 и 4.3, используяActionBarCompat
Надеюсь, это кому-то поможет!
источник
Я решил эту проблему, используя настраиваемый макет навигации.
С его помощью вы можете настроить что угодно в заголовке на панели действий:
build.gradle
AndroidManifest.xml
styles.xml
action_bar.xml
источник
У меня была аналогичная проблема, но с промежутком между значком или логотипом пользовательского приложения на панели действий. Решение Dushyanth по настройке заполнения программно сработало для меня (настройка заполнения на значке приложения / логотипа). Я попытался найти либо android.R.id.home, либо R.id.abs__home ( только ActionBarSherlock , поскольку это обеспечивает обратную совместимость), и, похоже, он работает на устройствах 2.3–4.3, на которых я тестировал.
источник
В моем случае это было с панелью инструментов, я решил это так:
ic_toolbar_drawble.xml
В моем фрагменте я проверяю api:
Удачи!
источник
Вы можете изменить drawableSize своего DrawerArrow следующим образом:
Это неправильный ответ, потому что вы не можете выбрать сторону заполнения и масштабирование значка DrawerArrow при изменении drawableSize (drawableSize = width = height). Но вы можете оставить отступ слева. Для отступа справа сделайте
источник
Я использовал этот метод,
setContentInsetsAbsolute(int contentInsetLeft, int contentInsetRight)
и он работает!источник
Когда вы используете настраиваемую панель инструментов, вы можете использовать
и в макете панели инструментов просто установите
app:titleMarginStart="16dp"
Обратите внимание, что вы должны установить значок в качестве логотипа, не используйте
getSupportActionBar().setIcon(R.drawable.logo)
вместо этого:getSupportActionBar().setLogo(R.drawable.logo)
источник
Я использовал
AppBarLayout
и обычай такImageButton
делать.Мой код Java:
источник
Вы также можете добиться того же методом:
источник
В вашем XML установите на
app:titleMargin
панели инструментов представление следующим образом:Или в вашем коде:
источник
эта работа для меня, чтобы добавить отступ к заголовку и
ActionBar
значку, который я установил программно.источник
Просто добавьте
" "
для имени вашего приложения. Это добавит пробел между значком и заголовком.источник