2017-04-20 35 views
0

我的代碼如下所示:抽屜菜單字體不編程改變

public class QuFlipActivity extends AppCompatActivity { 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     initNavigationDrawer(); 

.... 

} 

public void initNavigationDrawer() { 

     NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view); 
     overrideFonts(QuFlipActivity.this, navigationView); 
.... 
} 

public static void overrideFonts(final Context context, final View v) { 
     Typeface typeface = Typeface.createFromAsset(context.getAssets(), Consts.montserrat_regular); 
     try { 
      if (v instanceof ViewGroup) { 
       ViewGroup vg = (ViewGroup) v; 
       for (int i = 0; i < vg.getChildCount(); i++) { 
        View child = vg.getChildAt(i); 
        overrideFonts(context, child); 
       } 
      } else if (v instanceof TextView) { 
       ((TextView) v).setTypeface(typeface); 
      } 
     } catch (Exception e) { 
     } 
    } 

現在,這裏即使我寫的代碼更改默認字體,它不能改變它,有什麼修改可我使它工作?

+0

QuFlipActivity'定義在哪裏? – zdd

+0

我已經更新了我提到過的問題 –

回答

0

我有類似的問題,我通過更改Runnable中的字體來解決它。嘗試調用像下面的覆蓋字體函數,看看它是否適用於你

navigationView.post(new Runnable() { 
    @Override 
    public void run() { 
     overrideFonts(QuFlipActivity.this, navigationView); 
    } 
});