MaterialDesign的Toolbar以及Drawerlayout

MaterialDesign的Toolbar以及Drawerlayout_第1张图片
image.png

类似于上图的效果,点击顶部左侧的按钮会出现菜单栏(类似于SlideMenu),右侧的搜索按钮也会出现相应的事件。

我们只需要两个MD的组件就可以完成:

一,Drawerlayout

布局如下:



    

    

   

第一个Include是页面主页面,只需要将他的width和hight设置成matchparent,剩余的布局部分就是菜单的布局了。

二、toolbar
为toolbar设置布局可以直接在XML内他的标签内进行布局类似于:

  

        

            
        

        

            

                

                

                

            
        
    

这种写法吧左侧的菜单按钮放在布局中 作为一Imageview来进行操作,还有一种方法是直接在代码中设置:

   if (toolbar != null) {
        setSupportActionBar(toolbar);
        toolbar.setNavigationIcon(R.drawable.ic_ab_drawer);
   }

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (drawerToggle.onOptionsItemSelected(item)) {
        return true;
    }

    switch (item.getItemId()) {
        case android.R.id.home:
            mDrawerLayout.openDrawer(Gravity.START);

        case R.id.action_search:
            Toast.makeText(SampleActivity.this, "search", Toast.LENGTH_LONG).show();
            return  true;
    }

    return super.onOptionsItemSelected(item);
}

注: setSupportActionBar(toolbar);方法一定要在其他设置toolbar的方法执行!
同样的道理,右侧的搜索按钮也可以设置在代码中,首先需要创建一个res/menu目录下创建一个menu文件:


xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
android:id="@+id/action_search"
android:icon="@drawable/ic_launcher"
android:orderInCategory="100"
android:title="search"
app:showAsAction="always" />

重写方法

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

你可能感兴趣的:(MaterialDesign的Toolbar以及Drawerlayout)