2015-05-08 4 views
1

У меня проблема, я не могу центрировать свой заголовок на панели инструментов (@ + id/toolbar_title). Я попытался установить RelativeLayout, используйте layout_gravity: center, но он не работает. Я добавил цвета, чтобы отличить макет, но я не могу публиковать фотографии.Название центра на ToolBar

http://hpics.li/72b1cf7

activity_main.xml

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    tools:context=".MainActivity" 

    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="60dp" 
       android:background="@android:color/holo_green_dark" 
       app:theme="@style/ToolbarTheme" 
       app:popupTheme="@style/Theme.AppCompat" 
       android:layout_gravity="center_vertical" 
       > 

       <TextView 
        android:id="@+id/toolbar_title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true" 
        android:layout_gravity="center" 
        android:background="@color/primaryDark" 
        android:textSize="20dp" 
        /> 

       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:background="@color/primary"> 

        <ImageButton 
         android:id="@+id/show_list_actualites" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:src="@drawable/ic_fleche_bas" 
         android:adjustViewBounds="true" 
         android:layout_toLeftOf="@+id/loupe" 
         android:layout_marginLeft="20dp" 
         android:layout_marginRight="15dp" 
         android:layout_centerVertical="true" 
         android:padding="15dp" 
         android:background="@color/primaryDark" 
         /> 
        <!--android:background="@android:color/transparent"--> 

        <ImageView 
         android:id="@+id/loupe" 
         android:layout_width="wrap_content" 
         android:layout_height="12dip" 
         android:src="@drawable/ic_rech" 
         android:rotation="270" 
         android:adjustViewBounds="true" 
         android:layout_centerVertical="true" 
         android:layout_alignParentRight="true" 
         android:layout_marginRight="20dp" 
         android:background="@color/primaryDark" 
         /> 

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

     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/content_frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

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

      <LinearLayout 
       android:id="@+id/slide_news_list" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 
       android:visibility="gone"> 

       <ListView 
        android:id="@+id/list_slider_news_menu" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@color/action_bar_background" 
        android:text="Item 1"/> 


       <Button 
        android:id="@+id/close_news_slide" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="@color/grey_tranparent"/> 

      </LinearLayout> 

     </RelativeLayout> 

    </LinearLayout> 

    <ListView 
     android:id="@+id/left_drawer" 
     android:background="@android:color/white" 
     android:layout_width="305dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="start"/> 

</android.support.v4.widget.DrawerLayout> 

styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

    <style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat.Light"> 
     <item name="android:windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
    </style> 

    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="colorPrimary">@color/primary</item> 
     <item name="colorPrimaryDark">@color/primaryDark</item> 
    </style> 

    <style name="AppTheme" parent="AppTheme.Base"> 

    </style> 

    <style name="ToolbarTheme" parent="Theme.AppCompat"> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:textColorPrimary">@color/action_bar_text</item> 
     <item name="actionMenuTextColor">@color/action_bar_text</item> 
     <item name="android:textColorSecondary">@color/action_bar_text</item> 
     <item name="android:layout_gravity">center_horizontal</item> 
    </style> 

</resources> 
+0

Вы знаете, что стандарт для панели инструментов выровнен по левому краю? Существует причина, по которой трудно делать то, что вы пытаетесь (что не для разработки стандартов) – Booger

+0

Интересно, не хочу ли я использовать основной заголовок панели инструментов, который я не вижу? – GJer

+0

Что значит, что вы этого не видите? https://developer.android.com/reference/android/widget/Toolbar.html#setTitle%28int%29 – Booger

ответ

0

попробовать этот код ...

ра Панели инструментов есть видgroup. Так что вы не можете так проектировать. Я использовал FrameLayout для размещения элементов.

   <FrameLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"> 



       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:background="@color/primary"> 

        <ImageButton 
         android:id="@+id/show_list_actualites" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:src="@drawable/ic_launcher" 
         android:adjustViewBounds="true" 
         android:layout_toLeftOf="@+id/loupe" 
         android:layout_marginLeft="20dp" 
         android:layout_marginRight="15dp" 
         android:layout_centerVertical="true" 
         android:padding="15dp" 
         android:background="@color/primaryDark" 
         /> 
        <!--  android:background="@android:color/transparent"--> 

        <ImageView 
         android:id="@+id/loupe" 
         android:layout_width="wrap_content" 
         android:layout_height="12dip" 
         android:src="@drawable/ic_launcher" 
         android:rotation="270" 
         android:adjustViewBounds="true" 
         android:layout_centerVertical="true" 
         android:layout_alignParentRight="true" 
         android:layout_marginRight="20dp" 
         android:background="@color/primaryDark" 
         /> 

       </RelativeLayout> 

        <TextView 
         android:id="@+id/toolbar_title" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_centerVertical="true" 
         android:layout_gravity="center" 
         android:background="@color/primaryDark" 
         android:textSize="20dp" 
         android:text="Title" 
         /> 

       </FrameLayout> 
+0

Действительно странно, RelativeLayout не занимает всю панель инструментов, несмотря на match_parent: http://hpics.li/82e8ac3 – GJer

2

Центрирование текста на панели инструментов соответствует стандартам Android. Я думаю, именно поэтому у вас возникают проблемы с этим. Я бы не попытался настроить выравнивание текста, которое обеспечит ваше приложение в рамках экосистемы Android.

Проверить эту ссылку для подробной информации о Панели инструментов стандартов проектирования: http://www.google.com/design/spec/layout/structure.html#structure-toolbars

Я не отвечая, как вы могли бы сделать то, что вы просите, но предполагая, что вы не делаете это в первую очередь (используется стандартный формат , и вам это будет легче).

+1

Этот ответ не должен быть проголосован. Проверьте те спецификации материалов внимательно, и это подтвердит, что то, что я говорю, является точным - вы НЕ ДОЛЖНЫ делать это (согласно стандартам) – Booger

Смежные вопросы