张萌韩墨羽——Toolbar和DrawerLayout+SlideMenu 2种方式实现抽屉侧滑
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种方式实现抽屉侧滑相关推荐
- android 抽屉侧滑冲突,利用DrawerLayout和触摸事件分发实现抽屉侧滑效果
本文实例为大家分享了DrawerLayout和触摸事件分发实现抽屉侧滑效果的具体代码,供大家参考,具体内容如下 效果展示 还是看代码实在,直接上菜了. 1.MainActivity的代码: publi ...
- 张萌韩墨羽——打包升级兼容适配
打包升级兼容适配 meta-data标签读取以及多渠道打包原理 //解决报错flavorDimensions "versionCode"productFlavors {Tencen ...
- 张萌韩墨羽——Ument_Share集成
Ument_Share集成 U-Share集成 适用范围 该文档适用于Android组件化分享SDK6.9.0及以上版本. 更新说明 如果您想进行SDK升级操作,请根据如下情况选择合适的升级方式 如果 ...
- 张萌韩墨羽——android摄像头推流
android摄像头推流 功能概述 摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码之后再推送到直播云平台上.腾讯云 LiteAVSDK 通过 TXLivePusher 接口提供摄像头推 ...
- 张萌韩墨羽——Android蓝牙
蓝牙 是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换 关于蓝牙的权限主要涉及到下面三个: BLUETOOTH:允许配对的设备进行连接 BLUETOOTH_ADMIN:允 ...
- 张萌韩墨羽——CommonTabLayout使用
CommonTabLayout使用 音乐 package com.example.banner_use.fragment; import android.graphics.Canvas; import ...
- 张萌韩墨羽——BroadCast 广播
BroadCast 广播 广播作用以及机制 其实BroadcastReceiver就是应用程序间的全局大喇叭,即通信的一个手段, 系统自己在很多时候都会发送广播,比如电量低或者充足,刚启动完,插入耳机 ...
- Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果
在以前,做策划导航的时候,最常用的组件便是SlidingMenu了,当初第一次用它的时候觉得那个惊艳啊,体验可以说是非常棒. 后来,Android自己推出了一个可以实现策划导航的组件DrawerLay ...
- MaterialDesign学习篇(二),Toolbar、DrawerLayout的使用
什么是Toolbar Toolbar是应用的内容的标准工具栏,可以说是Actionbar的升级版,两者不是独立关系,要使用Toolbar还是得跟ActionBar扯上关系的.相比Actionbar,T ...
- 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 ...
最新文章
- 收藏 | 数据智能与计算机图形学领域2019推荐论文列表(附链接)
- 自学python方法-零基础初学Python人工智能的四种学习方法
- Dubbo框架设计原理
- 如何复制粘贴_年终工作总结如何写?复制粘贴肯定不行啦
- 移植wpa_supplicant软件与DHCP软件解密WPA/WPA2 加密的无线网络
- c语言以顺序结构存储的二叉树的非递归遍历,C语言二叉树的非递归遍历实例分析...
- _linux中curl命令详解-linux运维
- 卖设备 免费报价的网站
- Neural Style Transfer 神经风格迁移详解
- SonicWall 又爆已遭利用的 0day?!
- java拉起服务,从Java调用Restful服务
- matlab常用滤波处理(图片)小波、高斯、均值、中值
- 教你制作纯净的,原生的WinPE环境【无桌面无任何添加剂】
- html自动跳转到另外页面,html从一个页面跳转至另一个html页面的子页面
- RGB888转换为RGB565格式
- 云计算机技术与应用学什么的,云计算技术与应用专业学什么 主要课程
- 镭神C16上位机软件显示
- 墨者学院简单sql注入
- 认识kubernetes(k8s),k8s单节点etcd部署
- 灰色模型代码GM(1,1),从excel导入数据,亦可导出数据到excel中。