Material Design 实现之Toolbar的应用及其菜单动画

本文介绍了Android5.0中Toolbar的引入和使用,它比ActionBar更灵活,可以设置多个且自定义元素更多。在使用时需要注意与Actionbar的冲突,以及在主题、Activity基类的选择。通过实例展示了如何设置Toolbar,以及如何结合DrawerLayout实现侧滑菜单,还提到了谷歌的Design包中NavigationView的使用,提供了详细的代码示例和资源链接。
摘要由CSDN通过智能技术生成

在Android5.0中,Google推出了更加灵活的Toolbar来取代ActionBar。Toolbar的优点是更加灵活,比如以前一个界面只能设置一个ActionBAR,但可以有多个Toolbar。而Toolbar同样可以设置菜单,颜色图标等,可以自定义的元素比ActionBAR多。因此,在Android应用程序中使用toolbar是一种趋势。

为了提高程序的兼容性,我们通常都使用V7包中的Toolbar(当然如果你的应用只需要在Android5.0上运行,则可以直接使用android.widget.Toolbar),要在程序中使用toolbar,则需要在gradle脚本中加上依赖项:

compile 'com.android.support:appcompat-v7:23.0.0'

如果是使用eclipse开发,则需要加入appcompat的库工程。

使用Toolbar的注意事项,
1. 由于Actionbar和Toolbar本身是有冲突的,因此,如果使用了Toolbar,则需要使用不带Actionbar的主题
如:Theme.AppCompat.NoActionBar。
2. 由于使用的v7中的toolbar,因此,activity的基类也需要是v7中的AppCompatActivity。
3. 由于使用了AppCompatActivity对应的主题也需要是v7中的Theme.AppCompat.Light.NoActionBar

先看简单的效果图.

这里写图片描述
布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context=".MainActivity">

    <android.support.v7.widget.Toolbar

        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        ></android.support.v7.widget.Toolbar>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"></RelativeLayout>
</RelativeLayout>

MainActivity

public class MainActivity extends AppCompatActivity {
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

这里要介绍的是setSupportActionBar(对应Activity的setActionBar)这个方法,它是在AppCompatActivity 中的,我们需要调用它,把布局中的Toolbar设置为actionbar。

如此简单的,就完成了一个toolbar的实现。如果你需要对Toolbar进行自定义,比如修改背景色&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值