2016-02-10 12 views
6

Używam tego kodu do dostosowywania wysokości tekstu i wysokości wiersza w widoku nawigacji i działa on na api21 +, ale ten sam kod nie działa w api 16. Jak mogę to zrobić? ?niestandardowy rozmiar pozycji menu i textize w widoku nawigacji

kod:

Utwórz styl i zastosować go do NavigationView użyciu app:theme

<style name="NavigationViewStyle"> 
    <item name="android:textSize">20sp</item> <!-- menu item text size--> 
    <item name="android:listPreferredItemHeightSmall">40dp</item><!-- menu item height--> 
</style> 

I wtedy zastosować ten styl NavigationView użyciu aplikację: Temat

<android.support.design.widget.NavigationView 
     ... 
     ...  
     app:theme="@style/NavigationViewStyle" 
     ... 
     ... 


</android.support.design.widget.NavigationView> 
+0

Uwaga do innych: to pytanie zostało tutaj odpowiedział http://stackoverflow.com/ pytania/35453698/listpreferreditemheightsmall-is-not-working-on-api-16 – CKP78

Odpowiedz

7

W kodzie można użyj tego kodu, aby dostosować widok tekstu. spróbuj tego i daj mi znać.

private final ArrayList<View> mMenuItems = new ArrayList<>(); 
    final Menu navMenu = navigationView.getMenu(); 
    // Install an OnGlobalLayoutListener and wait for the NavigationMenu to fully initialize 
    navigationView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
     @Override 
     public void onGlobalLayout() { 
      // Remember to remove the installed OnGlobalLayoutListener 
      navigationView.getViewTreeObserver().removeOnGlobalLayoutListener(this); 
      // Loop through and find each MenuItem View 
      for (int i = 0; i < navMenu.size(); i++) { 
       final String id = "nav_menuItem" + (i); 
       final MenuItem item = navMenu.findItem(getResources().getIdentifier(id, "id", getPackageName())); 
       navigationView.findViewsWithText(mMenuItems, item.getTitle(), View.FIND_VIEWS_WITH_TEXT); 
      } 
      // Loop through each MenuItem View and apply your custom Typeface 

      for (final View menuItem : mMenuItems) { 
       ((TextView) menuItem).setTypeface(fontLight, Typeface.NORMAL); 
      } 

     } 
    }); 
+0

Jak zmienić rozmiar tekstu i odległość między dwoma elementami menu w widoku nawigacji? – jason

+0

@jason dostajesz widok tekstowy, możesz teraz wywołać metodę setTextsize i setpadding. – androidnoobdev

0

Sprawdź res/wartości katalogów, można znaleźć katalogu res/wartości-V16, który implementuje inny styl

+0

Mam vlaues, wartości-w820dp i wartości-v21. Czy mogę coś usunąć? – jason

Powiązane problemy