2016-02-10 11 views
6

ナビゲーションビューでテキストの高さと行の高さをカスタマイズするコードを使用していますが、api21 +で動作しますが、同じコードはapi 16では動作しません。 ?ナビゲーションビューのカスタムメニューアイテムのサイズとテキストサイズ

コード:

スタイルを作成し、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> 

を使用してNavigationViewにそれを適用し、アプリを使ってNavigationViewにこのスタイルを適用します。テーマ

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


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

注意を実装のres /値-V16のディレクトリを見つけることが、あなたのres /値のディレクトリを確認してください:この質問はここにhttp://stackoverflow.com/に答えてきました質問/ 35453698/listpreferreditemheights小規模な作業中のAPI-16 – CKP78

答えて

7

コードであなたをすることができますこのコードを使用してテキストビューをカスタマイズします。これを試して私に知らせてください。

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

ナビゲーションビューの2つのメニュー項目間のテキストサイズと距離を変更するにはどうすればよいですか? – jason

+0

@ jasonあなたはテキストビューを取得しています。これでsetTextsizeメソッドとsetpaddingメソッドを呼び出すことができます。 – androidnoobdev

0

あなたが他の人に異なるスタイル

+0

私は値、値-w820dp、値-v21を持ちます。私は何かを取り除くべきですか? – jason

関連する問題