上記の問題は 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"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
これを最終的に解決するには、タイトルに独自の名前を付け、 のメソッドをTextView
オーバーライドして、Lollipop の事前定義された をスキップします。setTitle
Toolbar
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);
}
}