前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >actionbar(Android开源项目)

actionbar(Android开源项目)

作者头像
提莫队长
发布2019-02-21 11:31:08
8020
发布2019-02-21 11:31:08
举报
文章被收录于专栏:刘晓杰刘晓杰

今天又学习了github上的一个开源库,地址:https://github.com/JakeWharton/ActionBarSherlock 我把其中几个我认为比较常用的功能选取出来分享给大家 另外还截了图供大家比对了看,并没有什么难度

这里写图片描述
这里写图片描述
代码语言:javascript
复制
    /**
     * getActionBar改变Home部分,menu.add改变Menu Item
     */
    // Menu对应导入的包com.actionbarsherlock.view.Menu
    // MenuItem对应导入的包com.actionbarsherlock.view.MenuItem
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // 设置背景图片,默认撑满整个ActionBar
        getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_actionbar));
        // 透明背景
        getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.ab_bg_black));

        /**
         * Home部分,用来显示Logo,主副标题
         */
        // 默认存在home区域,如果不想要,设为false
        getActionBar().setDisplayShowHomeEnabled(true);

        // 默认存在Logo,且是app的icon,当然也可以自己设置。不想要Logo设为false
        // 如果setDisplayShowHomeEnabled设为false则下面两行无效
        getActionBar().setDisplayUseLogoEnabled(true);
        getActionBar().setLogo(R.drawable.girl);

        // 显示主副标题。默认为true
        getActionBar().setDisplayShowTitleEnabled(true);
        getActionBar().setTitle("主标题");
        getActionBar().setSubtitle("副标题");

        // setDisplayHomeAsUpEnabled(true)可以响应onOptionsItemSelected
        // 响应Home区域的点击效果,id=android.R.id.home
        getActionBar().setDisplayHomeAsUpEnabled(true);

        /**
         * menu.add改变Menu Item
         */
        // 最常见的MenuItem。由于参数改变getMenuInflater无法使用
        // getMenuInflater().inflate(R.menu.main, menu);
        menu.add(0, Menu.FIRST, 0, "title")
                .setActionView(R.layout.collapsible_edittext)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

        // 自定义button视图
        // item1的id=(Menu.FIRST+1),但button不是,所以无法响应onOptionsItemSelected
        // 只能setOnClickListener
        Button button = new Button(this);
        button.setText("新增");
        menu.add(0, Menu.FIRST + 1, 0, null).setActionView(button)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "Button", Toast.LENGTH_SHORT)
                        .show();
            }
        });

        // 自定义button视图。可以响应onOptionsItemSelected
        // 但是非icon区域也会受点击响应的影响
        // 点击后打开系统设置界面
        menu.add(0, Menu.FIRST + 2, 0, null).setIcon(R.drawable.add2)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

        // 显示进度条。oncreate函数里面要有requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        // 注意,是在setContentView前面加
        setSupportProgressBarIndeterminateVisibility(true);
        return true;
    }
这里写图片描述
这里写图片描述
代码语言:javascript
复制
    /**
     * getActionBar改变Home部分,menu.add改变Menu Item
     */
    // Menu对应导入的包com.actionbarsherlock.view.Menu
    // MenuItem对应导入的包com.actionbarsherlock.view.MenuItem
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        ......

        // setCustomView是定制视图.它和setActionView区别在于:
        // ActionView可以通过setShowAsAction来改变自己的位置
        // setCustomView不能,只能通过setDisplayShowCustomEnabled来隐藏
        getActionBar().setDisplayShowCustomEnabled(true);
        final View customNav = LayoutInflater.from(this).inflate(
                R.layout.custom_view, null);
        getActionBar().setCustomView(customNav);
        ((RadioGroup) customNav.findViewById(R.id.radio_nav))
                .setOnCheckedChangeListener(new OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(RadioGroup group, int checkedId) {
                        RadioButton button = (RadioButton) customNav
                                .findViewById(checkedId);
                        Toast.makeText(
                                MainActivity.this,
                                "Navigation selection changed to "
                                        + button.getText().toString(),
                                Toast.LENGTH_SHORT).show();
                    }
                });

        // setNavigationMode
        getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1);
        adapter.add("hello2");
        adapter.add("hello1");
        adapter.add("hello3");
        getActionBar().setListNavigationCallbacks(adapter,
                new OnNavigationListener() {
                    @Override
                    public boolean onNavigationItemSelected(int itemPosition,
                            long itemId) {
                        Toast.makeText(MainActivity.this,
                                adapter.getItem(itemPosition),
                                Toast.LENGTH_SHORT).show();
                        return true;
                    }
                });
        return true;
    }
这里写图片描述
这里写图片描述
代码语言:javascript
复制
    /**
     * getActionBar改变Home部分,menu.add改变Menu Item
     */
    // Menu对应导入的包com.actionbarsherlock.view.Menu
    // MenuItem对应导入的包com.actionbarsherlock.view.MenuItem
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        ...

        // Tab。注意导的包要一致
        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        for (int i = 1; i <= 3; i++) {
            ActionBar.Tab tab = getSupportActionBar().newTab();
            tab.setText("Tab " + i);
            tab.setTabListener(this);
            getSupportActionBar().addTab(tab);
        }
        return true;
    }

我把我的代码放到了这里,可以参考:http://download.csdn.net/detail/lxj1137800599/9548296

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年06月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档