onPostCreate()是Activity完全启动后的调用:在完全启动后的回调设置toolbar 然后在使用
AppCompatActivity 时style要设置为何appCompat相关的样式,不然会报错:

You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法

 然后在使用注解框架时,如果是继承关系:不能两个地方都调用:则会出错

@Nullable doesn't work if Butterknife binds view from supersuperclass #389

 然后遇到的错是DrawerLayout的布局是尽量是设置:

    android:layout_width="match_parent"    android:layout_height="match_parent"不然也会报错:DrawerLayout must be measured with MeasureSpec.EXACTLY.解释: http://stackoverflow.com/questions/25864323/drawerlayout-must-be-measured-with-measurespec-exactly

Toolbar 使用的style:
<style name="ToolbarThemem" parent="AppTheme.PopupOverlay">

    <item name="android:background">?attr/colorPrimary</item>  设置背景颜色    <item name="android:layout_width">match_parent</item>       <item name="android:layout_height">wrap_content</item>    <item name="android:fitsSystemWindows">true</item>         <item name="android:minHeight">?attr/actionBarSize</item>   设置最小高度
<!-- android:textColorPrimary is the  color of the title text               in the Toolbar, in the Theme.AppCompat theme:  --><item name="android:textColorPrimary">@color/white</item>

<!-- android:textColorPrimaryInverse is the  color of the title       text in the Toolbar, in the Theme.AppCompat.Light theme:  --><item name="android:textColorPrimaryInverse">@color/white</item>

<!-- android:actionMenuTextColor is the color of the text of        action (menu) items in the Toolbar, at least in the        Theme.AppCompat theme.        For some reason, they already get the textColorPrimary        when running on API 21, but not on older versions of        Android, so this is only necessary to support older        Android versions.--><item name="actionMenuTextColor">@color/white</item><!-- android:textColorSecondary is the color of the menu       overflow icon (three vertical dots) --><item name="android:textColorSecondary">@color/white</item>

<!-- This would set the toolbar's background color,        but setting this also changes the popup menu's background,        even if we define popupTheme for our <Toolbar> -->

<item name="android:colorBackground">?attr/colorPrimary</item>
</style>

 AppTheme.PopupOverlay  是系统提供的一个默认Toolbar 的主题:

<?xml version="1.0" encoding="utf-8"?>
<!--  android:minHeight="?attr/actionBarSize"/>系统的配置-->

<android.support.v4.widget.DrawerLayout    android:id="@+id/drawer_layout"    android:layout_width="match_parent"    android:layout_height="match_parent"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:fitsSystemWindows="true"    xmlns:android="http://schemas.android.com/apk/res/android">

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:layout_width="match_parent"        android:layout_height="match_parent">    <android.support.v7.widget.Toolbar        android:id="@+id/msc_toolbar"      android:layout_height="wrap_content"        android:layout_width="match_parent"        android:layout_alignParentTop="true"        android:minHeight="?attr/actionBarSize"        app:popupTheme="@style/ThemeToolbar"        app:theme="@style/ThemeToolbar"        />

        <LinearLayout            android:orientation="vertical"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:layout_marginTop="5dp"            android:layout_below="@id/msc_toolbar"            android:background="@color/white">

            <TextView                android:id="@+id/noThingsMessage"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_margin="30dp"                android:textSize="20dp"                android:gravity="center_horizontal"                android:visibility="gone"/>

<ListView android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/frame"/>

        </LinearLayout>    </RelativeLayout><android.support.design.widget.NavigationView    android:id="@+id/navigation_view"    android:layout_width="wrap_content"    android:layout_height="match_parent"    android:layout_gravity="start"    app:headerLayout="@layout/drawer_header"    android:background="?attr/colorPrimary"    app:itemIconTint="@color/white"    app:itemTextColor="@color/white"    app:menu="@menu/menu_main"    /></android.support.v4.widget.DrawerLayout>
//可以在onCreate() 或者onPostCreate() 方法中去显示 Toolbar 效果  :@Overrideprotected void onPostCreate(Bundle savedInstanceState) {    super.onPostCreate(savedInstanceState);

    mscToolbar = (Toolbar) findViewById(R.id.msc_toolbar);    navigationView = (NavigationView) findViewById(R.id.navigation_view);    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

    //TODO eventually remove if everything has the bar    if (mscToolbar != null) {        setSupportActionBar(mscToolbar);        getSupportActionBar().setTitle(title);        getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.ic_menu_white_24dp));        getSupportActionBar().setDisplayHomeAsUpEnabled(true);        getSupportActionBar().setHomeButtonEnabled(true);

    }}

然后就是使用到了
navigationView.setNavigationItemSelectedListener(      new NavigationView.OnNavigationItemSelectedListener() {         @Override         public boolean onNavigationItemSelected(MenuItem menuItem) {            menuItem.setChecked(true);            drawerLayout.closeDrawers();            Intent intent = null;            switch (menuItem.getItemId()) {               case R.id.drawer_about:                  if (BaseActivity.this.getClass().equals(AboutActivity.class))                     return true;                  intent = new Intent(BaseActivity.this, AboutActivity.class);                  break;.......

//Toolbar 实现DrawerLayout 和图标互动的效果: 
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(        this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);drawer.setDrawerListener(toggle);toggle.syncState();


DrawerLayout和toolbar的使用的更多相关文章

  1. 修改DrawerLayout 和toolbar 配合navigation的颜色

    大家都知道DrawerLayout 和toolbar 结合能出来高大上的效果. 使用到一个ActionBarDrawerToggle类. 那么怎么修改DrawerToggle的颜色呢,搜索了很多中文网 ...

  2. DrawerLayout,ToolBar 和 TabHost 的使用

    ActionBar 定义起来不方便 toolbar: 最重要的特性,显示menu菜单,右上角三个点的菜单按钮,使用灵活 使用:1,布局文件,包裹LinearLayout 放imageView, 或者I ...

  3. Android——使用Toolbar + DrawerLayout快速实现高大上菜单侧滑(转)

    今天就来使用官方支持库来快速实现这类效果,需要使用到Toolbar和DrawerLayout,详细步骤如下:(如果你还不知道这两个Widget,先自己Google吧~) 1.首先需要添加appcomp ...

  4. 使用Toolbar + DrawerLayout快速实现高大上菜单侧滑

    如果你有在关注一些遵循最新的Material Design设计规范的应用的话(如果没有,假设你有!),也许会发现有很多使用了看起来很舒服.很高大上的侧滑菜单动画效果,示例如下(via 参考2): 今天 ...

  5. Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果

    在以前,做策划导航的时候,最常用的组件便是SlidingMenu了,当初第一次用它的时候觉得那个惊艳啊,体验可以说是非常棒. 后来,Android自己推出了一个可以实现策划导航的组件DrawerLay ...

  6. Toolbar的使用

    项目来源: https://github.com/xuwj/ToolbarDemo#userconsent# 一.V7包升级问题 折腾好久,终于解决 <style name="AppT ...

  7. 【Android - V】之DrawerLayout的使用

    DrawerLayout是Android V4包中的一个布局控件,用来实现一个抽屉样式的布局. DrawerLayout通过设置子视图的layout_gravity来决定子视图停靠在屏幕的哪个边缘外侧 ...

  8. Androd Toolbar 的简单使用(转)

    14年Android开发者大会提出了Android5.0 系统以及 材料设置 Material Design.在 材料设计中推出了大量的UI效果,其中某些功能 已添加进 兼容包,所以可以在低版本中来实 ...

  9. 【Android - 控件】之V - DrawerLayout的使用

    DrawerLayout是Android V4包中的一个布局控件,用来实现一个抽屉样式的布局. DrawerLayout通过设置子视图的layout_gravity来决定子视图停靠在屏幕的哪个边缘外侧 ...

随机推荐

  1. java String字符串——进度1

    String字符串    在JAVA中提供了多种创建字符串对象的方法,这里介绍最简单的两种,    第一种是直接赋值,    第二种是使用String类的构造方法:    如下所示:    Strin ...

  2. jquery 的新使用用法

    在1.9.1jquery版本中,live 被替换了,现在使用on事件 在动态添加的行中使用下面可响应 $("tbody").on("click","b ...

  3. TDirectory.IsEmpty判断指定目录是否为空

    使用函数: System.IOUtils.TDirectory.IsEmpty class function IsEmpty(const Path: string): Boolean; static; ...

  4. 第 14 章 迭代器模式【Iterator Pattern】

    以下内容出自:<<24种设计模式介绍与6大设计原则>> 周五下午,我正在看技术网站,第六感官发觉有人在身后,扭头一看,我C,老大站在背后,赶忙站起来, “王经理,你找我?” 我 ...

  5. ACdream训练赛系列のJava专场

    /* * this code is made by mhy12345 * Problem: 1669 * Verdict: Accepted * Submission Date: 2015-04-21 ...

  6. Mozilla对HTML5规范支持列表

    翻译自Mozilla Developer Network 在2009年10月28日,HTML 5规范草稿在网络超文本应用技术工作组(WHATWG)中基本出于最后定稿阶段,这意味着HTML 5标准基本定 ...

  7. UIKIT网页基本结构学习

    没办法,哈哈,以后一段时间,如果公司没有招到合适的运维研发, 啥啥都要我一个人先顶上了~~~:) 也好,可以让人成长. UIKIT,BOOTSTRAP之类的前端,搞一个是有好处的,我们以前即然是用了U ...

  8. HANDLE HINSTANCE HWND CWnd CDC

    HANDLE HINSTANCE HWND CWnd CDC 句柄:   柄,把柄 例如一个锅的手柄,你只要抓住了它,你就可以很好地操作那个锅,不过很明显你只能通过锅的手柄来做一些诸如炒菜之类的事,你 ...

  9. 【Xamarin挖墙脚系列:学习资料大放送】

    原文:[Xamarin挖墙脚系列:学习资料大放送] 最靠谱的还是官方的文档,英文的,借着翻译工具,硬看吧.还能学习英文........... https://developer.xamarin.com ...

  10. nginx优化 突破十万并发(转)

    一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计 ...