2017-04-20 30 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); 
    } 
});