修改Menu_item的字体属性


前面一直在找 MenuItem的文字颜色的设置。我发现API中只有背景颜色的设置。。。

所以找到下面的方法。在OverFlow上看到的。
在onCreateOptionsMenu中覆写一下, 使MenuItem产生的ItemView去修改文字颜色.


  @Override
  public boolean onCreateOptionsMenu(Menu menu) {

      MenuInflater inflater = getMenuInflater();

      getLayoutInflater().setFactory(new Factory() {

      @Override
      public View onCreateView(String name, Context context, AttributeSet attrs) {

        if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")
                || name.equalsIgnoreCase("com.android.internal.view.menu.ActionMenuItemView")) { //## 括号中是控件的类型, 只要是界面中有此类型的控件,全都会修改.

           try {
                LayoutInflater f = getLayoutInflater();
                final View view = f.createView(name, null, attrs);
                if(view instanceof TextView){
                 ((TextView)view).setTextColor(Color.GREEN);
                 ((TextView)view).setTextSize(13);
                                           }
                return view;
           } catch (InflateException e){
                   e.printStackTrace();
           } catch (ClassNotFoundException e){
                   e.printStackTrace();
                             }
                   }
       return null;
           }
        
      });
      
      inflater.inflate(R.menu.main, menu);
      return super.onCreateOptionsMenu(menu);
   }





原文地址:https://www.cnblogs.com/neo-java/p/6830220.html