Material Design Toolbar

Material Design 是谷歌公司提出的一套界面设计规范,使用它的相应主题就能得到相对应的Material Design风格

Material主题有三种
Material Design Toolbar_第1张图片
两种兼容主题 兼容主题都在 com.android.support:appcompat-v7:28.0.0 各个版本V7包下面
Material Design Toolbar_第2张图片

我们一般使用兼容主题

Theme.AppCompat.Light.DarkActionBar

新建一个项目,使用 Theme.AppCompat.Light.DarkActionBar 主题 看看界面的效果

 
    
  //设置Material方式的主题
    
    //设置Material方式的主题
        
            

            
        
    

Material Design Toolbar_第3张图片
可以看到这就是Material的风格了 状态栏 标题栏 虚拟导航栏 我颜色都改变了,接下来 我们把虚拟导航栏的颜色改为红色看看效果

 
 @color/colorAccent

Material Design Toolbar_第4张图片

(1) Toolbar的使用

Toolbar是什么了? 它其实就是一个标题栏而已,是谷歌公司为我们提供的一个控件
使用它 需要先导入 appcompat-v7 包,对应你自己项目版本的就行,然后再你的 xml布局文件中进行添加

我们新建一个Activity Toolbarctivity,在它的布局文件中使用Toolbar





    


    


menu菜单



    //总是显示

    //不显示这个图标

    //如果空间够就显示

对应Activity代码

public class Toolbarctivity extends AppCompatActivity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_toolbarctivity);

        Toolbar tbAtToolbar = findViewById(R.id.tb_at_toolbar);
        //把tbAtToolbar  设置到 ActionBar里面 这样就可以当做ActionBar来使用 
        //这一步很重要 不这样设置 就是空白,并且下面两行代码位置不能替换
        setSupportActionBar(tbAtToolbar);
        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null)
        {
            //设置Toolbar home键可点击
            actionBar.setDisplayHomeAsUpEnabled(true);
            //设置Toolbar home键图标 如果不设置,默认是一个箭头
            //actionBar.setHomeAsUpIndicator(R.drawable.ic_drawer_am);
        }
    }

	//配置菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        getMenuInflater().inflate(R.menu.toobalr, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
            case android.R.id.home:
             Toast.makeText(this, "home", Toast.LENGTH_SHORT).show();
                break;
            case R.id.add:
                Toast.makeText(this, "add", Toast.LENGTH_SHORT).show();
                break;
            case R.id.delete:
                Toast.makeText(this, "delete", Toast.LENGTH_SHORT).show();
                break;
            case R.id.tb_setting:
                Toast.makeText(this, "setting", Toast.LENGTH_SHORT).show();
                break;
        }
        return true;
    }
}

manifest配置

   


  

运行看看效果

Material Design Toolbar_第5张图片

如果我们想自己定义标题,并且居中,可以这么做

  

          

    

我们再看看效果
这里要注意的是 如果我们自己添加了标题,那么Toolbar里的标题和副标题就不会在显示了
Material Design Toolbar_第6张图片

在国内App中,标题栏几乎没有这么多的内容,我们来精简一下看看

在布局文件中去掉 logo 标题 副标题 这些属性



    


men配置文件中只显示菜单图标 app:showAsAction=“never” 即为不显示不显示的将会出现在菜单列表中 add 和 delete 将会出现在菜单列表里



    

    

    

Activity里面 不设置Home图标 默认显示箭头

 //actionBar.setHomeAsUpIndicator(R.drawable.ic_drawer_am);

再来看看效果,是否符合国内的风格
Material Design Toolbar_第7张图片
Material Design Toolbar_第8张图片

你可能感兴趣的:(Material)