zoukankan      html  css  js  c++  java
  • Android_ActionBar

            ActionBar actionBar = getActionBar();
            actionBar.setDisplayHomeAsUpEnabled(true);//在activity title栏的左侧开启一个<按钮,
       // 然后在onOptionsItemSelected(MenuItem menuItem) 里面使用menuItem.getItenmId()判断id是否为android.R.id.home,如果是则finish掉当前的activity
        /**
         * 让overflow显示在activity onCreate()里面调用
         */
        private void setOverflowShowingAlways() {
            try {
                ViewConfiguration config = ViewConfiguration.get(this);
                Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
                menuKeyField.setAccessible(true);
                menuKeyField.setBoolean(config, false);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        /**
         * 设置actionBar可以显示图标
         */
        @Override
        public boolean onMenuOpened(int featureId, Menu menu) {
            if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
                if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
                    try {
                        Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                        m.setAccessible(true);
                        m.invoke(menu, true);
                    } catch (Exception e) {
                    }
                }
            }
            return super.onMenuOpened(featureId, menu);
        }
    never 表示显示在溢出菜单中显示,溢出菜单就三个口竖屏显示的那个。
    ifRoom 表示在显示4个或者是4个以上的item的时候会隐藏到溢出菜单里。还有如果界面显示不了了也会在溢出菜单里面显示。
    collapseActionView 表示当前的item可以进行合并,他一般都是和ifRoom配合使用,像我们看到的微信的搜索item就是这个原理做的。
    always     表示一直在bar上面显示,不管是什么情况下。都显示。不会显示到溢出菜单里面。
    withText   表示会显示文字。。在溢出菜单里面显示。。

    android:actionViewClass 这个属性就是可以设置一个view在item里面显示。例如搜索view,android.widget.SerachView
    android:actionProviderClass 这个属性就可以设置一个provider在item里面显示,例如自定义的provider,com.xxx.SubMenuProvider。自定义的provider里面可以添加子menu.效果类似于微信里面的一个+号点击以后会弹出一些列子菜单。
    android:actionLayout 这个属性就可以设置一个布局文件放到item里面显示。
    android:orderInCetegory 这个属性就是传入一个整数类型,传入的值越大优先级越低,越容易在溢出菜单里面显示。
    import android.content.Context;
    import android.util.Log;
    import android.view.ActionProvider;
    import android.view.MenuItem;
    import android.view.MenuItem.OnMenuItemClickListener;
    import android.view.SubMenu;
    import android.view.View;
    
    /**
     * 为了表示这个Action Provider是有子菜单的,需要重写hasSubMenu()方法并返回true,然后在onPrepareSubMenu通过调用SubMenu的add()方法添加子菜单。
     * @author kchang
     * @E-mail:kchang244@163.com
     */
    public class MyActionProvider extends ActionProvider {
        private static final String TAG = MyActionProvider.class.getSimpleName();
        public MyActionProvider(Context context) {
            super(context);
        }
        @Override
        public View onCreateActionView() {
            return null;
        }
    
        @Override
        public void onPrepareSubMenu(SubMenu subMenu) {
            subMenu.clear();
            subMenu.add("Sub Menu A").setIcon(R.drawable.call).setOnMenuItemClickListener(new OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    Log.d(TAG, "onMenuItemClick() Sub Menu A");
                    return true;
                }
            });
            subMenu.add("Sub Menu B").setIcon(R.drawable.chat).setOnMenuItemClickListener(new OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    Log.d(TAG, "onMenuItemClick() Sub Menu B");
                    return true;
                }
            });
            super.onPrepareSubMenu(subMenu);
        }
        
        @Override
        public boolean hasSubMenu() {
            return true;
        }
    }
    
    

    ActionBar大概就用到这些,如果要用actionBar.Tab那个也很容易不过不是很好用,tab+viewPager

     
  • 相关阅读:
    特殊集合
    推箱子
    集合
    数组

    循环语句 练习题
    穷举与迭代
    循环语句
    练习题
    switch case
  • 原文地址:https://www.cnblogs.com/changkai244/p/4108603.html
Copyright © 2011-2022 走看看