2016-01-05 4 views
2

Я пытаюсь получить название Свернутой панели инструментов в центр. Но, похоже, есть некоторая ошибка в самом базовом макете. По какой-то причине название имеет смещение. Невозможно выяснить, как это исправить. Также, похоже, нет свойства применять отрицательный маржи/отступы к collapsedTitle.Как получить название в центре панели инструментов

<android.support.design.widget.CoordinatorLayout 
android:id="@+id/coordinator_layout" 
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:fitsSystemWindows="true" 
android:orientation="vertical"> 

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/app_bar_height" 
    android:fitsSystemWindows="true" 
    android:theme="@style/XXXXAppTheme.AppBarOverlay"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsingToolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:collapsedTitleGravity="center" 
     app:contentScrim="?attr/colorPrimary" 
     app:expandedTitleGravity="top|center_horizontal" 
     app:expandedTitleMarginTop="-10dp" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" 
     app:title="REGISTER"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:popupTheme="@style/XXXXAppTheme.PopupOverlay"/> 

     <ImageView 
      android:id="@+id/ivContent" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/white_background" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      app:layout_collapseMode="parallax"/> 

    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 


<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clipToPadding="false" 
    android:orientation="vertical" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <FrameLayout 
     android:id="@+id/flContainer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</LinearLayout> 

CollapsedToolbar

+8

Это IOS стиль. Пожалуйста, не делайте Android iOS :) – Sufian

+1

Ну, не могу спорить с моим менеджером. К сожалению, это необходимо. :) – iZBasit

+0

Смещение происходит из-за кнопки навигации вверх. Если вы действительно хотите это сделать, лучше использовать собственный макет и добавить в него панель инструментов. Это даст вам полный контроль над дизайном. Однако я согласен с @Sufian. Это очень iOS. :) – SlashG

ответ

3

Попробуйте это в вашей "Toolbar"

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar_top" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:minHeight="?attr/actionBarSize" 
    android:background="@color/color" 
    app:theme="@style/ToolBarTheme" > 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Register" 
     android:layout_gravity="center" 
     android:id="@+id/toolbar_title" /> 


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

Как избавиться от названия по умолчанию? – iZBasit

+0

удалите «app: title» из вашего xml на CollapsingToolbar, если это не работает, тогда установите текст CollapsingToolbar на «» в вашем коде – TejjD

+0

@iZBasit проверить мой ответ ниже – piotrek1543

1

Чтобы сделать его центром, пожалуйста, выполните следующие действия:

Чтобы использовать куб Название льзовательского в вашем Toolbar все, что вам нужно сделать, это помнить , что Toolbar просто фантазии ViewGroup, так что вы можете добавить пользовательские названия следующим образом:

<android.support.v7.widget.Toolbar  
    android:id="@+id/toolbar_top" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:minHeight="?attr/actionBarSize" 
    android:background="@color/action_bar_bkgnd" 
    app:theme="@style/ToolBarTheme" > 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Toolbar Title" 
     android:layout_gravity="center" 
     android:id="@+id/toolbar_title" /> 


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

Это означает, что вы можете стиль TextView однако вы бы как , потому что это просто обычный TextView. Таким образом, в вашей деятельности вы можете доступ название следующим образом:

Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top); 
TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title); 

От: Android toolbar center title and custom font

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

setSupportActionBar(toolbar_top); 
getSupportActionBar().setDisplayShowTitleEnabled(false); 

Надеется, что это поможет

+1

Пожалуйста, обновите свой ответ ссылкой, в которой вы взял это из :) – Sufian

+0

@ Суфийский, извините, я редактировал. Теперь сделано ;-) – piotrek1543

+0

@ piotrek1543 как он будет масштабировать, если я использую пользовательский текст? – iZBasit

-1

Вы должны использовать это. Чтобы добавить TextView в сторону Toolbar

<android.support.v7.widget.Toolbar 
    android:layout_width="match_parent" 
    android:layout_height="130dp" 
    android:id="@+id/toolbar"> 

    <android.support.v7.widget.AppCompatTextView 
     android:id="@+id/toolbar_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/app_name" 
     android:layout_gravity="center"/> 

</android.support.v7.widget.Toolbar> 
Смежные вопросы