ブラウズフラグメントの行ヘッダーのテキストの色とフォントを変更するには?. メニューにはないテキストですが、行の上に表示されるテキストです。
3 に答える
android.support.v17.leanback.widget.RowHeaderPresenter
のプレゼンターとして提供された を使用していると仮定していHeaderFragment
ますBrowseFragment
。
は、次のようなRowHeaderPresenter
レイアウトをインフレートします。R.layout.lb_row_header
<android.support.v17.leanback.widget.RowHeaderView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?rowHeaderStyle" />
ご覧のとおり、これrowHeaderStyle
は と呼ばれるスタイル属性を使用しており、通常は を指してい@style/Widget.Leanback.Row.Header
ます。に次を入れることで、これをオーバーライドできますstyles.xml
。
<style name="MyCustomRowHeaderStyle" parent="Widget.Leanback.Row.Header">
<item name="android:textColor">@color/red</item>
</style>
<style name="MyCustomBrowseStyle" parent="Theme.Leanback.Browse">
<item name="rowHeaderStyle">@style/MyCustomRowHeaderStyle</item>
</style>
そしてMyCustomBrowseStyle
、Activity
あなたBrowseFragment
のAndroidManifest.xml
.
david.mihola による回答は色に役立ちますが、カスタム フォントをグローバルに設定する際にはまだ問題がありました。この質問に出くわし、これについても困惑しているすべての人にとって、これが私の解決策です。
chrisjenx (カリグラフィー)による素晴らしい作業のおかげで、グローバル (カスタム) フォントを簡単に設定できます。
Calligraphy を gradle.build に追加し、次のスニペットを .xml ファイルに追加するだけApplication.onCreate()
です。
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/MyCustomFont.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
すべてのアクティビティに以下を追加します。
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
これにより、レイアウトを変更することなく、すべての TextView でフォント トリックが実行されました。カリグラフィーのドキュメントは、さらにいくつかの可能性を提供します。見てみな。
これが、この質問を見つけて (カスタム) フォントをグローバルに設定しようとしている他の人々に役立つことを願っています。