Android API 21 панель инструментов Padding



Как избавиться от дополнительного заполнения в новой панели инструментов с Android SDK API версии 21 (библиотека поддержки)?



Я говорю о красных стрелках на этой картинке:
enter image description here



вот код, который я использую:



<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, но все еще есть отступы вокруг счетчика. Что я сделал не так или что мне нужно сделать, чтобы избавиться от лишних обивка?



Edit
Некоторые задавались вопросом, почему я пытаюсь это сделать.



согласно спецификациям конструкции материала, счетчик должен быть 72dp с левой стороны desc



мне нужно нейтрализовать заполнение, которое Google поставил там, чтобы правильно разместить мой счетчик:desc



Edit 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>


Я надеюсь, что это поможет кому-то, это меня смутило в течение нескольких дней.

625   10  

10 ответов:

левая вставка вызвана панели инструментов contentInsetStart который по умолчанию равен 16dp.

измените это на 72dp, чтобы выровнять по ключевой линии.

обновление для библиотеки поддержки v24.0. 0:

чтобы соответствовать спецификации Material Design, есть дополнительный атрибут contentInsetStartWithNavigation который по умолчанию равен 16dp. Измените это, если у вас также есть значок навигации.

выше ответ правильный, но есть еще одна вещь, которая может создать проблемы (по крайней мере для меня)

я использовал следующее, И он не работает должным образом на старых устройствах -

android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

трюк здесь просто использовать следующее -

app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

и избавиться от -

android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"

и теперь он должен работать нормально на всех устройствах.

надеюсь, что это помогает.

в случае, если кто-то еще споткнется здесь... вы можете установить обивка, например:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

int padding = 200 // padding left and right

toolbar.setPadding(padding, toolbar.getPaddingTop(), padding, toolbar.getPaddingBottom());

или contentInset:

toolbar.setContentInsetsAbsolute(toolbar.getContentInsetLeft(), 200);

просто добавьте эти две строки в панели инструментов. Тогда мы получим новый снято с левой стороны пространства, потому что по умолчанию он 16dp.

android:contentInsetStart="0dp"
app:contentInsetStart="0dp"

Создать панель инструментов как:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/menuToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:background="@color/white"
android:contentInsetLeft="10dp"
android:contentInsetRight="10dp"
android:contentInsetStart="10dp"
android:minHeight="?attr/actionBarSize"
android:padding="0dp"
app:contentInsetLeft="10dp"
app:contentInsetRight="10dp"
app:contentInsetStart="10dp"></android.support.v7.widget.Toolbar>

вам нужно добавить

contentInset

атрибут для добавления интервала

пожалуйста, перейдите по этой ссылке для более - Android Советы

сочетание

android:padding="0dp" В xml для панели инструментов

и

mToolbar.setContentInsetsAbsolute(0, 0) В коде

это работает для меня.

вот что я сделал, и он отлично работает на каждой версии Android.

панели инструментов.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/primary_color"
    app:theme="@style/ThemeOverlay.AppCompat"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="16dp" <!-- Add margin -->
        android:layout_marginStart="16dp"
        android:gravity="left|center"
        android:text="Toolbar Title" <!-- Your title text -->
        android:textColor="@color/white" <!-- Matches default title styles -->
        android:textSize="20sp"
        android:fontFamily="sans-serif-medium"/>

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

MyActivity.java(чтобы скрыть название панели инструментов по умолчанию)

getSupportActionBar().setDisplayShowTitleEnabled(false); // Hide default toolbar title

результат с показанными линиями клавиш

enter image description here

хорошо, так что если вам нужно 72dp, не могли бы вы просто добавить разницу в заполнении в xml-файл? Таким образом, Вы сохраняете андроиды по умолчанию вставки/дополнения, которые они хотят, чтобы мы использовали.

Итак: 72-16=56

для этого: добавьте 56dp отступ, чтобы поставить себя на отступ/маржу всего 72dp.

или вы можете просто изменить значения в Dimen.XML-файл. вот что я сейчас делаю. Он изменяет все, весь макет, включая панель инструментов при реализации в новом правильный путь Андроида.

Dimen Resource File

ссылка, которую я добавил, показывает значения Dimen в 2dp, потому что я изменил его, но он был установлен по умолчанию в 16dp. Просто к вашему сведению...

это работает для меня на моем телефоне Android 7.11:

<!-- TOOLBAR -->
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:contentInsetStartWithNavigation="0dp">

    <TextView
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/create_account_title"
        android:textColor="@color/color_dark_grey"/>

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

Примечание: у меня не было абсолютно никакого успеха с padding=0, или contentInsetLeft=0, или contentInsetStart=0

((Toolbar)actionBar.getCustomView().getParent()).setContentInsetsAbsolute(0,0);

Comments

    Ничего не найдено.