Проблема уже упоминалось выше происходит только в версиях Lollipop, а не в KitKat и более низких версий. Lollipop не соответствует стилю текста и ставит его собственный TitleTextAppearance
. Таким образом, даже вы добавите своего собственного ребенка TextView
для своего Toolbar
(показано ниже), android.support.v7.widget.Toolbar
все равно переопределит ваши стили.
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:theme="@style/someToolbarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
style="@style/someTitleStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
Чтобы окончательно решить эту проблему, поставить свой собственный TextView
для заголовка и переопределить setTitle
методы Toolbar
, чтобы пропустить Lollipop Предопределенных TitleTextAppearance
.
public class YourCustomToolbar extends Toolbar {
public YourCustomToolbar (Context context) {
super(context);
}
public YourCustomToolbar (Context context, AttributeSet attrs) {
super(context, attrs);
}
public YourCustomToolbar (Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setTitle(CharSequence title) {
((TextView) findViewById(R.id.title)).setText(title);
}
@Override
public void setTitle(int title) {
((TextView) findViewById(R.id.title)).setText(title);
}
}
Прохладный. Должно быть возможным стилизовать это, не добавляя пользовательский вид, не так ли? – Kenneth
Вы используете Android Studio? Не получать предупреждения? «Элемент TextView здесь запрещен» –
@JaredBurrows Я использую ADT, и я не получил этого предупреждения. –