Как избавиться от дополнительных отступов в новой панели инструментов с Android SDK API версии 21 (библиотека поддержки)?
Я говорю о красных стрелках на этой картинке:
Вот код, который я использую:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:background="?attr/colorPrimary"
android:padding="0dp"
android:layout_margin="0dp">
<RelativeLayout
android:id="@+id/action_bar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="0dp"
android:padding="0dp"
android:background="#000000">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
</Toolbar>
Как вы можете видеть, я установил все соответствующие отступы на 0, но вокруг Spinner все еще есть отступы. Что я сделал не так или что мне нужно сделать, чтобы избавиться от дополнительного заполнения?
Редактировать Некоторые задаются вопросом, почему я пытаюсь это сделать.
Согласно спецификациям Material Design, счетчик должен быть 72dp с левой стороны
Мне нужно нейтрализовать заполнение, которое Google поместил туда, чтобы правильно разместить мой счетчик:
Редактировать 2
В соответствии с ответом Криса Бэйна ниже я установил contentInsetStart в 0. Для библиотеки поддержки вам нужно будет использовать пространство имен приложения:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="@dimen/action_bar_height"
android:background="?attr/colorPrimary"
android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v4.widget.DrawerLayout>
Надеюсь, это кому-то поможет, меня это смутило несколько дней.
источник
contentInsetX
свойства в 0dp.Ответы:
Левая вставка вызвана
contentInsetStart
панелями инструментов, которые по умолчанию составляют 16dp.Измените это на 72dp, чтобы выровнять к ключевой линии.
Обновление для библиотеки поддержки v24.0.0:
Для соответствия спецификации Material Design есть дополнительный атрибут,
contentInsetStartWithNavigation
который по умолчанию равен 16dp. Измените это, если у вас также есть значок навигации.источник
contentInsetStartWithNavigation
0 сделала свое дело с support-v4: 25.0.1Вышеуказанный ответ верен, но есть еще одна вещь, которая может создать проблемы (по крайней мере, это создало проблему для меня)
Я использовал следующее, и оно не работает должным образом на старых устройствах -
Хитрость здесь заключается в том, чтобы использовать следующее -
и избавиться от -
И теперь он должен нормально работать на всех устройствах.
Надеюсь, поможет.
источник
app:contentInsetStartWithNavigation
может помочь исправить положение, если этого недостаточно,Просто добавьте две строки на панели инструментов. Затем мы получаем новый удаленный левый боковой пробел bcoz, по умолчанию это 16dp.
источник
В случае, если здесь кто-то оступится ... вы также можете установить отступы , например:
Или contentInset :
источник
Вот что я сделал, и он отлично работает на каждой версии Android.
toolbar.xml
MyActivity.java (чтобы скрыть заголовок панели инструментов по умолчанию)
Результат с показом Кейлина
источник
Сделайте вашу панель инструментов похожей на:
Вам нужно добавить
атрибут для добавления пробела
Пожалуйста, перейдите по этой ссылке для более - Android Советы
источник
Сочетание
android:padding="0dp"
В XML для панели инструментови
mToolbar.setContentInsetsAbsolute(0, 0)
В кодеЭто сработало для меня.
источник
это работает для меня на моем телефоне Android 7.11:
примечание: у меня не было абсолютно никакого успеха с padding = 0, или contentInsetLeft = 0, или contentInsetStart = 0
источник
Итак, если вам нужно 72dp, не могли бы вы просто добавить разницу в заполнении в XML-файл? Таким образом, вы сохраняете настройки Android по умолчанию Inset / Padding, которые они хотят, чтобы мы использовали.
Итак: 72-16 = 56
Для этого: добавьте отступ 56 дп, чтобы получить общий отступ / отступ 72 дп.
Или вы можете просто изменить значения в файлах Dimen.xml. это то, что я делаю сейчас. Он меняет все, весь макет, включая панель инструментов, когда реализован в новом подходящем для Android стиле.
Файл ресурсов Dimen
Ссылка, которую я добавил, показывает значения Dimen в 2dp, потому что я изменил его, но он был установлен по умолчанию в 16dp. Просто к вашему сведению ...
источник
источник