Ist es möglich, eine TextView
für den Titel einer MenuItem
für eine NavigationView
zu bekommen? (Ich möchte die Schriftart ändern)Android-Support-Bibliothek - get Titel TextView von NavigationView
drawer_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<group android:checkableBehavior="single">
<item
android:id="@+id/cards"
android:icon="@drawable/ic_menu_cards"
android:clickable="false"
android:title="Cards"
app:showAsAction="always"/>
<item
android:id="@+id/waiter"
android:icon="@drawable/ic_menu_waiter"
android:clickable="false"
android:title="Timer Mode"
app:showAsAction="always"/>
<item
android:id="@+id/settings"
android:icon="@drawable/ic_menu_settings"
android:title="Settings"
app:showAsAction="always"/>
<item
android:id="@+id/purchase"
android:icon="@drawable/ic_menu_purchase"
android:clickable="false"
android:title="Purchase"
app:showAsAction="always"/>
<item
android:id="@+id/feedback"
android:icon="@drawable/ic_menu_feedback"
android:clickable="false"
android:title="Feedback"
app:showAsAction="always"/>
</group>
</menu>
Und mein Layout:
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- Removed for simplicity -->
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:theme="@style/NavigationDrawer"
app:headerLayout="@layout/navigation_view_header"
app:itemTextColor="@color/white"
app:menu="@menu/drawer_menu" />
</android.support.v4.widget.DrawerLayout>
ich ein anderes Beispiel gesehen haben, wo die MenuItem
zu TextView
Gießen sollte funktionieren, aber in meiner Fall, es gibt nur null zurück.
TextView title = (TextView) navigationView.getMenu().getItem(0) <-- TextView becomes null
Wie kann ich den Titel zugreifen, damit ich die Schrift manipulieren?
Weitere Hintergrundinfo:
ich normalerweise bin Einstellung der Schriftart Databindings verwenden, aber für Android Support Library Komponenten dies nicht funktioniert, so muss ich manuell den Textview zugreifen und es wie folgt festgelegt:
textView.setTypeface(FontCache.getInstance(textView.getContext()).get("lato_regular"));
Sie brauchen nicht die festlegen Schriftart programmgesteuert oder erhalten Sie die 'TextView'. Sie können fast jeden Aspekt der 'NavigationView' gestalten und anpassen. In Ihrem Fall müssen Sie dem Attribut "itemTextAppearance" lediglich einen Stil zuweisen. –
Leider ist es nicht möglich, da ich Datenbindungen für die Einstellung der Schriftarten verwende und keine Lust auf etwas wie Kalligraphie habe. Siehe hierzu: https://github.com/lisawray/fontbinding – nilsi