Toolbar和DrawerLayout+SlideMenu 2种方式实现抽屉侧滑

效果图

一.ToolBar常用的方法
二.DrawerLayout常用的方法
三.ToolBar和DrawerLayout绑定
四.ToolBar和DrawerLayout代码
五.SlideMenu实现抽屉
1.SlideMenu的属性:
2.代码实现:
效果图
1.Toolbar和DrawerLayout实现
Toolbar:标题栏
DrawerLayout:可以实现侧滑
2.SlideMenu实现 第三方 需要导入moudle(slidemenu)

一.ToolBar常用的方法
Toolbar是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件,以此来取代之前的Actionbar 。我们需要在工程中引入appcompat-v7的兼容包以便向下兼容, 使用android.support.v7.widget.Toolbar进行开发。在设计 Toolbar 的时候,Google也留给了开发者很多可定制修改的余地,这些可定制修改的属性在API文档中都有详细介绍,如:

1.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);去掉标题栏;
2.Toolbar.setLogo(),设置logo图片;
3.Toolbar.setTitle().设置标题;
4.Toolbar.setSubTitle()设置子标题;
5.Toolbar.setTitleTextColor(int color);设置标题文字颜色;
6.Toolbar.setSubtitleTextColor();设置子标题文字颜色;
7.setTitleMargin(int start, int top, int end, int bottom);设置标题margin值; 8.onCreateOptionsMenu,getMenuInflater().inflate(R.menu.menu,menu)
设置菜单在给Toolbar设置为actionbar时使用;
9.Toolbar.setOnMenuItemClickListener();Toolbar绑定menu监听;
10.Toolbar.inflateMenu(R.menu.menu)在Toolbar没有替换actionbar时使用;
11.setSupportActionBar(mToolbar);设置toolbar替换actionbar;
12.getLayoutInflater().inflate(R.layout.view_tv,bar);Toolbar添加自定义view

二.DrawerLayout常用的方法
DrawerLayout.isDrawerOpen(Gravity.LEFT)是否开启;
DrawerLayout.openDrawer(Gravity.LEFT);开启抽屉
DrawerLayout.closeDrawer(Gravity.RIGHT);关闭抽屉

三.ToolBar和DrawerLayout绑定

private void bindToolBar() {//设置开关ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.app_name, R.string.app_name);//开启同步toggle.syncState();//设置给drawerLayoutdrawerLayout.addDrawerListener(toggle);
}

四.ToolBar和DrawerLayout代码
(0)先去掉自带的ActionBar,在清单文件中

(1)布局文件代码:activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.day3.MainActivity"android:orientation="vertical"><android.support.v7.widget.Toolbarandroid:background="#bdbebf"android:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="50dp"></android.support.v7.widget.Toolbar><android.support.v4.widget.DrawerLayoutandroid:id="@+id/drawer_layout"android:layout_width="match_parent"android:layout_height="match_parent"><!--主界面,必须先写--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"><TextViewandroid:text="我是侧拉主界面"android:textSize="50sp"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout><!--侧滑部分  android:layout_gravity="left" 从左侧滑出--><LinearLayoutandroid:layout_gravity="left"android:layout_width="200dp"android:layout_height="match_parent"android:gravity="center"><ListViewandroid:id="@+id/lv"android:background="#b49797"android:layout_width="wrap_content"android:layout_height="match_parent"></ListView></LinearLayout></android.support.v4.widget.DrawerLayout></LinearLayout>

(2)java 代码:MainActivity.java

public class MainActivity extends AppCompatActivity {Toolbar toolbar;DrawerLayout drawerLayout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);drawerLayout=findViewById(R.id.drawer_layout);initToolBar();//初始化barbindToolBar();//绑定bar}private void initToolBar() {toolbar = findViewById(R.id.toolbar);//设置导航图标.toolbar.setNavigationIcon(R.mipmap.ic_launcher);//设置toolbar的大标题toolbar.setTitle("天气");toolbar.setLogo(R.mipmap.ic_launcher_round);//设置toolbar的小标题.toolbar.setSubtitle("Android");}//toolbar和drawerLayout绑定实现切换效果private void bindToolBar() {//设置开关ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.app_name, R.string.app_name);//开启同步toggle.syncState();//设置给drawerLayoutdrawerLayout.addDrawerListener(toggle);}
}

五.SlideMenu实现抽屉
1.SlideMenu的属性:
设置模式: setMode(SlidingMenu.LEFT);
设置触摸屏幕的模式:setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//TOUCHMODE_FULLSCREEN全屏;TOUCHMODE_MARGIN边界;TOUCHMODE_NONE不能滑动
设置左侧菜单滑动显示的内容:slidingMenu.setMenu(R.layout.slide_menu);
设置左侧滑动菜单的阴影宽度:slidingMenu.setShadowWidth(300);
设置滑动时的渐变程度:slidingMenu.setFadeDegree(0.5f);范围0.0f-1.0f
设置淡入淡出的效果:slidingMenu.setFadeEnabled(true);
设置左侧滑动菜单的阴影图片(颜色):setShadowDrawable();
设置滑出时主页面显示的剩余宽度:slidingMenu.setBehindOffset(200);

注意:
(1)attachToActivity():将slidemenu和Activity绑定
(2)setMenu():设置菜单显示的内容
(3) Button bt = slidingMenu.getMenu().findViewById(R.id.bt1);为侧滑出来的菜单设置事件监听
2.代码实现:
(1)导入第三方moudle:slidemenu

(2)activity代码中是实现

public class SlidingMenuActivity extends AppCompatActivity {private SlidingMenu slidingMenu;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sliding_menu);initmenu();}private void initmenu() {//TODO 1:创建菜单对象slidingMenu=new SlidingMenu(this);//TODO 2:设置属性//SlidingMenu.RIGHT   SlidingMenu.LEFTslidingMenu.setMode(SlidingMenu.LEFT);//设置从哪边出来//TOUCHMODE_FULLSCREEN全屏;TOUCHMODE_MARGIN边界;TOUCHMODE_NONE不能滑动slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//在屏幕的任何位置左滑都可以显示出来slidingMenu.setBehindOffset(200);//单位是像素px 侧滑菜单滑出后,界面剩余的宽度。slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//绑定到指定的Context//TODO 3:设置布局并且相应布局上面的按钮View view = LayoutInflater.from(this).inflate(R.layout.slide, null);
Button button=view.findViewById(R.id.bt_close);
button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//关闭抽屉// slidingMenu.showMenu();//显示抽屉slidingMenu.showContent();//显示主页面}
});
slidingMenu.setMenu(view);//设置布局        //TODO 4:设置监听listener,监听侧滑菜单的打开和关闭.slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {@Overridepublic void onOpened() {Toast.makeText(SlidingMenuActivity.this, "打开了", Toast.LENGTH_SHORT).show();}});slidingMenu.setOnClosedListener(new SlidingMenu.OnClosedListener() {@Overridepublic void onClosed() {Toast.makeText(SlidingMenuActivity.this, "侧滑菜单关闭", Toast.LENGTH_SHORT).show();}});}
}

张萌韩墨羽——Toolbar和DrawerLayout+SlideMenu 2种方式实现抽屉侧滑相关推荐

  1. android 抽屉侧滑冲突,利用DrawerLayout和触摸事件分发实现抽屉侧滑效果

    本文实例为大家分享了DrawerLayout和触摸事件分发实现抽屉侧滑效果的具体代码,供大家参考,具体内容如下 效果展示 还是看代码实在,直接上菜了. 1.MainActivity的代码: publi ...

  2. 张萌韩墨羽——打包升级兼容适配

    打包升级兼容适配 meta-data标签读取以及多渠道打包原理 //解决报错flavorDimensions "versionCode"productFlavors {Tencen ...

  3. 张萌韩墨羽——Ument_Share集成

    Ument_Share集成 U-Share集成 适用范围 该文档适用于Android组件化分享SDK6.9.0及以上版本. 更新说明 如果您想进行SDK升级操作,请根据如下情况选择合适的升级方式 如果 ...

  4. 张萌韩墨羽——android摄像头推流

    android摄像头推流 功能概述 摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码之后再推送到直播云平台上.腾讯云 LiteAVSDK 通过 TXLivePusher 接口提供摄像头推 ...

  5. 张萌韩墨羽——Android蓝牙

    蓝牙 是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换 关于蓝牙的权限主要涉及到下面三个: BLUETOOTH:允许配对的设备进行连接 BLUETOOTH_ADMIN:允 ...

  6. 张萌韩墨羽——CommonTabLayout使用

    CommonTabLayout使用 音乐 package com.example.banner_use.fragment; import android.graphics.Canvas; import ...

  7. 张萌韩墨羽——BroadCast 广播

    BroadCast 广播 广播作用以及机制 其实BroadcastReceiver就是应用程序间的全局大喇叭,即通信的一个手段, 系统自己在很多时候都会发送广播,比如电量低或者充足,刚启动完,插入耳机 ...

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

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

  9. MaterialDesign学习篇(二),Toolbar、DrawerLayout的使用

    什么是Toolbar Toolbar是应用的内容的标准工具栏,可以说是Actionbar的升级版,两者不是独立关系,要使用Toolbar还是得跟ActionBar扯上关系的.相比Actionbar,T ...

  10. Android【Toolbar、DrawerLayout 滑动菜单、 FloatingActionButton 悬浮按钮、Snackbar可交互提示、 Coordinator】

    目录 1.Toolbar 1.1基本框架 1.2常用属性 1.3添加工具栏点击事件 1.4 溢出菜单 1.5 溢出菜单的点击事件 2 DrawerLayout 滑动菜单 2.1 基本框架 2.2 Na ...

最新文章

  1. 收藏 | 数据智能与计算机图形学领域2019推荐论文列表(附链接)
  2. 自学python方法-零基础初学Python人工智能的四种学习方法
  3. Dubbo框架设计原理
  4. 如何复制粘贴_年终工作总结如何写?复制粘贴肯定不行啦
  5. 移植wpa_supplicant软件与DHCP软件解密WPA/WPA2 加密的无线网络
  6. c语言以顺序结构存储的二叉树的非递归遍历,C语言二叉树的非递归遍历实例分析...
  7. _linux中curl命令详解-linux运维
  8. 卖设备 免费报价的网站
  9. Neural Style Transfer 神经风格迁移详解
  10. SonicWall 又爆已遭利用的 0day?!
  11. java拉起服务,从Java调用Restful服务
  12. matlab常用滤波处理(图片)小波、高斯、均值、中值
  13. 教你制作纯净的,原生的WinPE环境【无桌面无任何添加剂】
  14. html自动跳转到另外页面,html从一个页面跳转至另一个html页面的子页面
  15. RGB888转换为RGB565格式
  16. 云计算机技术与应用学什么的,云计算技术与应用专业学什么 主要课程
  17. 镭神C16上位机软件显示
  18. 墨者学院简单sql注入
  19. 认识kubernetes(k8s),k8s单节点etcd部署
  20. 灰色模型代码GM(1,1),从excel导入数据,亦可导出数据到excel中。

热门文章

  1. CNN的基本概念、常用的计算公式和pytorch代码
  2. 【托业】【新托业TOEIC新题型真题】学习笔记4-题库一-P7
  3. idea 导出项目到eclipse
  4. 无线网络 EAP 认证
  5. 1.HTTP协议|web框架
  6. Java、两点间距离
  7. Windows 7无法启用网络发现的处理办法
  8. Google Earth Engine 入门1 GEE账号注册
  9. 登录页面加密token和盐的作用
  10. 20 分钟教你量化自己的资产