ToolBar快速使用

前言##

很久以前学了Toolbar,当初没做笔记,今天用的时候居然发现不会用了, 无奈只好重新学了一遍,顺便记录下.

效果图

ToolBar快速使用_第1张图片

使用前修改主题

使用toolbar,自然需要隐藏原来的ActionBar,values/styles.xml中做出如下修改:

 

先看activity_main.xml##

我们把toolbar的布局抽出来,include一下,可以方便复用
activity_main.xml




    

    


toolbar.xml布局
这里说明一下几个属性设置的意思:

  1. android:layout_height="?attr/actionBarSize",toolbar高度做适配
  2. android:elevation="4dp"阴影效果
  3. 这里主题用ThemeOverlay.AppCompat.Dark.ActionBar,它内部的图标和问题都是白色的,不设置会出现toolbar右侧三个小点为黑色.整体颜色不一致.
  4. popupTheme:为toolbar的下拉菜单stytle



    

    
    


Toolbar下拉菜单设置stytle

下拉菜单遮挡覆盖在toolbar上面,修改如下配置


    

colors.xml



    #3F51B5
    #303F9F
    #FF4081

    #FFFFFF

    #181a29
    #2d2929

先简单设置导航栏图标,title等看看初步效果

看看MainActivity里面的代码,注释都有.

private Toolbar toolbar;
    private void initView() {
        toolbar = (Toolbar) findViewById(R.id.my_toolbar);


        //添加title、subtitle、logo、导航栏图标
        toolbar.setLogo(R.drawable.ic_launcher);
        toolbar.setTitle("Title");
        toolbar.setTitleTextColor(Color.WHITE);
        toolbar.setSubtitle("Subtitle");
        toolbar.setSubtitleTextColor(Color.parseColor("#FFFFFF"));
        //别忘了
        setSupportActionBar(toolbar);

        // 注意:设置导航栏图标   要设定在setSupoortActionBar之后
        toolbar.setNavigationIcon(R.drawable.icon_pic_list_type);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "NavigationIcon", Toast.LENGTH_SHORT).show();
            }
        });
        }

运行看到如下效果图:
ToolBar快速使用_第2张图片

接下来我们要设置下拉菜单了

首先我们需要在res下创建一个名字为menu的文件,在menu中创建menu_main.xml.
res/menu/menu_main.xml:



    

    

    

        
            
                

                
                
                
                
            
        
    

    


    

menu菜单创建好后,在MainActivity中重写onCreateOptionsMenu()方法,把这个菜单加载进去:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

MainActivityonCreate()方法中设置toolBar的MenuItem点击事件

 //设置toolBar上的MenuItem点击事件
        toolbar.setOnMenuItemClickListener(listener);
private final Toolbar.OnMenuItemClickListener listener = new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.action_search:
                    Toast.makeText(MainActivity.this, "searach!!!", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.action_share:
                    Toast.makeText(MainActivity.this, "share!!!!", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.action_settings:
                    //Toast.makeText(MainActivity.this, "设置", Toast.LENGTH_SHORT).show();
                    //弹出自定义popWindow
                    //popUpMyOverflow();
                    break;
                case R.id.action_login:
                    Toast.makeText(MainActivity.this, "登录", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.action_regis:
                    Toast.makeText(MainActivity.this, "注册", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.action_help:
                    Toast.makeText(MainActivity.this, "帮助", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.action_pep:
                    Toast.makeText(MainActivity.this, "个人", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.action_zx:
                    Toast.makeText(MainActivity.this, "中心", Toast.LENGTH_SHORT).show();
                    break;
            }
            return false;
        }
    };

ok自己运行一下看效果.
最后附上demo github地址:https://github.com/787060894/ToolbarDemo

你可能感兴趣的:(ToolBar快速使用)