5

Im próbuje ustawić pozycję plecach ikonę nawigacji w moim rozszerzonym pasku następująco:Toolbar przycisk grawitacja na rozszerzonym pasku

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    app:theme="@style/Toolbar" 
    android:minHeight="@dimen/action_bar_height" 
    app:buttonGravity="top" 
    android:gravity="top" 
    android:background="?attr/colorPrimary" /> 

Sprawdzanie źródła pasku możemy zobaczyć:

private void ensureNavButtonView() { 
    if (mNavButtonView == null) { 
     mNavButtonView = new ImageButton(getContext(), null, 
      R.attr.toolbarNavigationButtonStyle); 
     final LayoutParams lp = generateDefaultLayoutParams(); 
     lp.gravity = GravityCompat.START | (mButtonGravity & Gravity.VERTICAL_GRAVITY_MASK); 
     mNavButtonView.setLayoutParams(lp); 
    } 
} 

Gdzie mButtonGravity jest przypisany przez

mButtonGravity = a.getInteger(R.styleable.Toolbar_buttonGravity, Gravity.TOP); 

Więc czytając to poprawnie, t powaga mojego paska narzędzi powinna już być Gravity.TOP, jeśli nic nie jest skonfigurowane. Jednak wygląda to tak:

enter image description here

+0

Proszę wkleić cały xml tutaj – Gaskoin

Odpowiedz

12

Grałem około trochę i przetestowane kilka kombinacji i można powiedzieć, grawitacja i android:minHeight tego przycisku nie chcą być przyjaciółmi.

To powinno zadziałać:

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar" 
    android:layout_height="@dimen/action_bar_height" 
    android:layout_width="match_parent" 
    app:theme="@style/Toolbar" 
    android:minHeight="?attr/actionBarSize" 
    android:gravity="top" 
    android:background="?attr/colorPrimary" /> 
+5

+1 To jest poprawna odpowiedź. Nie pozwól, aby 'minHeight' kontrolował Twój pasek narzędzi, spowoduje to pomniejszenie pomiarów grawitacji. Zawsze ustaw "minHeight" na domyślny rozmiar, a jako stronę wysokości ustaw jako stronę rozszerzoną. – Devunwired

4

Jeśli chcesz ikonę na górze i tytuł na dole można spróbować coś takiego:

<Toolbar 
    android:id="@+id/toolbar" 
    android:layout_height="128dp" 
    android:layout_width="match_parent" 
    android:minHeight="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:gravity="bottom" /> 

Korzystanie atrybut android:minHeight jako Standardowy actionBarSize, przyciski i akcje są umieszczone na górze. Podczas używania atrybutu android:gravity możesz ustawić położenie tytułu u dołu.

+1

jak umieścić tytuł przy tylnej strzałce? –

Powiązane problemy