Wie ändert man Textfarbe und Schriftart der Zeilenkopfzeile in Durchsuchen Fragment ?. Der Text nicht im Menü, sondern der Text, der über den Zeilen angezeigt wird.android-tv Ändern von Textfarbe und Schriftart von Durchsuchen Fragment-Header
Antwort
Ich nehme an, Sie verwenden die bereitgestellten android.support.v17.leanback.widget.RowHeaderPresenter
als Presenter für die HeaderFragment
in Ihrem BrowseFragment
.
Die RowHeaderPresenter
bläht das Layout von R.layout.lb_row_header
, die wie folgt aussieht:
<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" />
Wie Sie sehen können, dies wird ein Stil-Attribut namens rowHeaderStyle
, die normalerweise auf @style/Widget.Leanback.Row.Header
zeigt. Sie können dies umgehen, indem Sie die folgende in Ihrer styles.xml
setzen:
<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>
Und dann MyCustomBrowseStyle
für die Activity
verwenden, die die BrowseFragment
, indem sie es in Ihrem AndroidManifest.xml
erklärt.
Die Antwort von david.mihola hilft mit der Farbe, aber ich hatte immer noch Probleme mit der globalen Einstellung einer benutzerdefinierten Schriftart. Für alle, die über diese Frage stolpern und darüber ebenfalls verwirrt sind, hier ist meine Lösung:
Dank der tollen Arbeit von chrisjenx (Calligraphy) getan, können Sie einfach eine globale (benutzerdefinierte) Schriftart festlegen.
einfach Kalligraphie zu Ihrem gradle.build hinzufügen und die folgende Snippet zu Ihrer Application.onCreate()
hinzufügen:
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/MyCustomFont.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
und in jeder Aktivität fügen Sie die folgenden:
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
Dies hat getan, um die font-Trick für mich auf jedem einzelnen TextView, ohne Layouts zu ändern. Die Dokumentation von Kalligraphie bietet auch einige weitere Möglichkeiten. Hör zu.
Ich hoffe, dies hilft anderen Menschen, die diese Frage finden und versuchen, (benutzerdefinierte) Schriftarten global festzulegen.
Zusätzlich zu Davids Antwort.
rowHeaderStyle
den Stil gilt sowohl für Menüpunkte in HeaderFragment
und Zeilentitel in RowFragment
(diese beiden Fragmente zusammensetzen Ihre BrowseFragment
).
Wenn Sie möchten, dass ihre Stile (insbesondere Schriftfarben) unterschiedlich sind, können Sie BrowseFragment::onCreateHeadersFragment()
überschreiben und an diesem Punkt ein bestimmtes Thema anwenden. In
1) styles.xml
diese Stile:
<style name="AppTheme.Leanback.Browse.Row" parent="@style/Theme.Leanback.Browse">
<item name="rowHeaderStyle">@style/AppTheme.Leanback.Row</item>
</style>
<style name="AppTheme.Leanback.Browse.Header" parent="@style/AppTheme.Leanback.Browse.Row">
<item name="rowHeaderStyle">@style/AppTheme.Leanback.Header</item>
</style>
<style name="AppTheme.Leanback.Row" parent="Widget.Leanback.Row.Header">
<item name="android:textColor">@color/font_row</item>
</style>
<style name="AppTheme.Leanback.Header" parent="Widget.Leanback.Row.Header">
<item name="android:textColor">@color/font_header</item>
</style>
2) AppTheme.Leanback.Browse.Row
Thema zu Ihrer Tätigkeit in manifest Nehmen.
3) Übernehmen AppTheme.Leanback.Browse.Header
Thema Header in Ihrem BrowseFragment
:
// Kotlin snippet
override fun onCreateHeadersFragment() : HeadersFragment {
class CustomHeadersFragment : HeadersFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
return super.onCreateView(
inflater.cloneInContext(ContextThemeWrapper(inflater.context, R.style.AppTheme_Leanback_Browse_Header)),
container,
savedInstanceState
)
}
}
return CustomHeadersFragment()
}
- 1. Ändern von Textfarbe und Hintergrund eines TextView
- 2. Ändern der Textfarbe von uitabbaritem
- 3. Ändern der Textfarbe von Datepicker
- 4. UINavigationBar ändern Titel Textfarbe und Schriftgröße
- 5. Ändern der Schriftart von Textbereich
- 6. ändern Sie Textfarbe abhängig von Hintergrundbild/Farbe
- 7. Ändern der Textfarbe von Optionsfeldern in Winforms
- 8. Ändern Schriftart Schriftart Text
- 9. Schriftart ändern
- 10. Ändern Schriftart Schriftart von Android Studio per Mac?
- 11. Ändern Sie Textfarbe und Selektor in TabWidget
- 12. Ändern Schriftart abhängig von Daten in Tabelle
- 13. Ändern Sie die Schriftart von CharacterRun
- 14. Textfarbe ändern onclick
- 15. AndroidTV TvInputService Implementierung
- 16. Schriftart einer Zeile von Listview ändern
- 17. Snackbar oder Toast AndroidTv
- 18. Set Textfarbe und Schriftart für UIDatePicker in iOS8/Swift
- 19. Android Kalenderansicht ändern Textfarbe
- 20. Ändern Schaltfläche Textfarbe
- 21. Sherlock Aktionsleiste ändern Textfarbe
- 22. Ändern der Textfarbe
- 23. NVD3 Beschriftung ändern Textfarbe
- 24. ändern listpreference Zusammenfassung Textfarbe und -größe
- 25. Unterstreichen und ändern Textfarbe in Android TextView
- 26. Ändern UITextView Textfarbe mit Animation
- 27. Android: Toggle-Textfarbe von ToggleButton
- 28. Ändern aller UIButton Schriftart
- 29. Statusleiste Textfarbe ändern von weiß iOS 7/Xcode 5
- 30. ADB-Verbindung zu einem AndroidTV
konnte ich nicht, wo Überschreibung 'onCreateHeadersFragment' finden. Offenbar hatte ich eine ältere Version von Lehnback, diese Methode wurde kürzlich zu 25.3.0 hinzugefügt. https://developer.android.com/reference/android/support/v17/leanback/app/BrowseFragment.html#onCreateHeadersFragment() – Hless