您当前的位置: 首页 >  ar

xiangzhihong8

暂无认证

  • 6浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

android smartbar适配

xiangzhihong8 发布时间:2015-05-12 18:47:26 ,浏览量:6

1.使用魅族的demo里的SmartBarUtils.java
2.在mainifest中的Application
            android:theme="@android:style/Theme.DeviceDefault.Light"
            android:uiOptions="splitActionBarWhenNarrow " 
3.在基类的activity中:
//代表隐藏头部bar
SmartBarUtils.setActionBarViewCollapsa ble(getActionBar(), true);
getActionBar().setDisplayOptions(0);
4.在业务的fragment中:
必须先调用下面的代码,才能是fragment里的menu生效
setHasOptionsMenu(true);
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.home_menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_home_page:
new AlertDialog.Builder(mAct).setTitle("Action Menu Item")
.setPositiveButton("Yes", null).setNegativeButton("Cancel", null).show();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
魅族的反射工具类:
public class SmartBarUtils {
    
      public static void setActionBarTabsShowAtBo ttom(ActionBar actionbar, boolean showAtBottom) {
            try {
                  Method method = Class.forName("android.app.ActionBar").getMethod(
                              "setTabsShowAtBottom", new Class[] { boolean.class });
                  try {
                        method.invoke(actionbar, showAtBottom);
                  } catch (IllegalArgumentException  e) {
                        e.printStackTrace();
                  } catch (IllegalAccessException e) {
                        e.printStackTrace();
                  } catch (InvocationTargetExceptio n e) {
                        e.printStackTrace();
                  }
            } catch (SecurityException e) {
                  e.printStackTrace();
            } catch (NoSuchMethodException e) {
                  e.printStackTrace();
            } catch (ClassNotFoundException e) {
                  e.printStackTrace();
            }
      }
      
    
      public static void setActionBarViewCollapsa ble(ActionBar actionbar, boolean collapsable) {
            try {
                  Method method = Class.forName("android.app.ActionBar").getMethod(
                              "setActionBarViewCollapsa ble", new Class[] { boolean.class });
                  try {
                        method.invoke(actionbar, collapsable);
                  } catch (IllegalArgumentException  e) {
                        e.printStackTrace();
                  } catch (IllegalAccessException e) {
                        e.printStackTrace();
                  } catch (InvocationTargetExceptio n e) {
                        e.printStackTrace();
                  }
            } catch (SecurityException e) {
                  e.printStackTrace();
            } catch (NoSuchMethodException e) {
                  e.printStackTrace();
            } catch (ClassNotFoundException e) {
                  e.printStackTrace();
            }
      }
      
    
      public static void setActionModeHeaderHidde n(ActionBar actionbar, boolean hidden) {
            try {
                  Method method = Class.forName("android.app.ActionBar").getMethod(
                              "setActionModeHeaderHidde n", new Class[] { boolean.class });
                  try {
                        method.invoke(actionbar, hidden);
                  } catch (IllegalArgumentException  e) {
                        e.printStackTrace();
                  } catch (IllegalAccessException e) {
                        e.printStackTrace();
                  } catch (InvocationTargetExceptio n e) {
                        e.printStackTrace();
                  }
            } catch (SecurityException e) {
                  e.printStackTrace();
            } catch (NoSuchMethodException e) {
                  e.printStackTrace();
            } catch (ClassNotFoundException e) {
                  e.printStackTrace();
            }
      }
      
关注
打赏
1482932726
查看更多评论
立即登录/注册

微信扫码登录

0.0540s