zoukankan      html  css  js  c++  java
  • 关于Actionbar的那些事

    咱们来说说有趣的Actionbar吧

    Actionbar这个控件是3.0以后添加的,Google在13年的时候把它加入了v7包,现在第三方的Actionbarserlock基本没什么用了,

    要兼容2.3版本的话,得用v7包,v7包要注意,不仅是一个jar包,它是一个库,有资源文件,v7-appcompat-***,***为版本号,注意:

    版本号和主项目中的compile-sdk一定要匹配,complile-sdk必须大于或者等于v7库的版本号,不然v7里面的style会报错。

    然后,你的Activity得继承ActionbarActivity,这样就OK了

    Actionbar是干嘛的呢,其实就是一个导航栏,基本上是下面两种效果。

         

    分别对应标签模式和下拉模式

    // 标签模式
        private void tabActionBar() {
            actionBar.setIcon(R.drawable.onemt_liked_big);
            actionBar.setTitle("GG");
            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
            actionBar.addTab(actionBar.newTab().setText("1").setTabListener(this));
            actionBar.addTab(actionBar.newTab().setText("2").setTabListener(this));
            actionBar.addTab(actionBar.newTab().setText("3").setTabListener(this));
        }
    // 下拉模式
        private void listActionBar() {
            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
            SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.array, android.R.layout.simple_spinner_dropdown_item);
            actionBar.setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener);
        }

    当然,你不想用标签,也不想用下拉,就想用导航栏上面那几个图标也可以NavigationMode就设成正常或者不设置都可以。

    然后,注意Activity中的两个重要的回调方法

    //创建Actionbar的菜单
        @Override
        public boolean onCreateOptionsMenu(android.view.Menu menu) {
            getMenuInflater().inflate(R.menu.menu, menu);
            return super.onCreateOptionsMenu(menu);
        }
        
        //Actionbar菜单的点击事件
        @Override
        public boolean onOptionsItemSelected(android.view.MenuItem item) {
            switch (item.getItemId()) {
            case android.R.id.home:
                Toast.makeText(context, "df", Toast.LENGTH_SHORT).show();
                break;
    
            default:
                break;
            }
            
            return super.onOptionsItemSelected(item);
        }

    Actionbar是怎么布局的,点击哪个图标有什么反应,都通过这两个方法设置。menu资源文件中提供了Actionbar的图片的个数,属性,以及排列

    最后,你想自定义Actionbar怎么办?

    //自定义布局
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setCustomView(LayoutInflater.from(this).inflate(R.layout.customactionbar, null));

    非常简单,用自定义布局就OK了

    PS:

    欢迎大家关注我的微信公众号"大土豆爱开发",技术包括但不限于JavaEE,Android,Git等。

  • 相关阅读:
    关于高精度的那些事 ~
    LOJ #10002. 喷水装置
    [HAOI2008]糖果传递
    题解 CF1404B 【Tree Tag】
    题解 CF1407E 【Egor in the Republic of Dagestan】
    唯美歌词
    CF做题总结
    CSP2020游记
    数论
    hash好题
  • 原文地址:https://www.cnblogs.com/mark888/p/4824433.html
Copyright © 2011-2022 走看看