11

ブラウズフラグメントの行ヘッダーのテキストの色とフォントを変更するには?. メニューにはないテキストですが、行の上に表示されるテキストです。

4

3 に答える 3

18

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>

そしてMyCustomBrowseStyleActivityあなたBrowseFragmentAndroidManifest.xml.

于 2015-11-18T10:24:18.657 に答える
4

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 でフォント トリックが実行されました。カリグラフィーのドキュメントは、さらにいくつかの可能性を提供します。見てみな。

これが、この質問を見つけて (カスタム) フォントをグローバルに設定しようとしている他の人々に役立つことを願っています。

于 2016-04-22T08:09:26.867 に答える