2015-05-09 2 views
0

Я хочу заменить заголовок на панели инструментов логотипом, подобным Twitter App.Как заменить заголовок логотипом в панели инструментов Android?

Я думаю, что мы можем заменить это программно как то:

mToolbar = (Toolbar) findViewById(R.id.app_toolbar); 
mToolbar.setLogo(R.drawable.ic_logo); 

Но я хочу, чтобы заменить его прямо в моей XML декларации панели инструментов, но я не могу видеть свойство app:logo или android:logo.

<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/app_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/colorPrimary" 
    android:minHeight="?attr/actionBarSize" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:theme="@style/MyCustomToolBarTheme" /> 

Пожалуйста, помогите мне, спасибо.

ответ

4

Если проверить исходный код Toolbar и Toolbar «s custom attributes, есть только несколько атрибутов, которые можно использовать для настройки Toolbar, но логотип не один из них:

  • titleTextAppearance
  • subtitleTextAppearance
  • navigationIcon
  • ...

Toolbar.setLogo(resId), кажется, единственный вариант на данный момент.

+0

Благодарим вас за подтверждение, вот что я подумал. –

1

Панель инструментов содержит группу ViewGroup, которую вы можете заполнить любыми видами, которые вы хотите - вы можете добавить ImageView там, если хотите логотип. Пример:

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    > 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:src="@drawable/ic_logo"/> 
</android.support.v7.widget.Toolbar> 

Если вручную прикрепить его к AppCompatActivity или ActionBar деятельности, он «становится» в ActionBar, а затем следует манипулировать с помощью этих функций кода.