第九单元 ToolBar和DrawLayout和SlidingMenu

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

一.ToolBar常用的方法

1.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);去掉标题栏;
2.Toolbar.setLogo(),设置logo图片;
3.Toolbar.setTitle().设置标题;
4.Toolbar.setSubTitle()设置子标题;
5.Toolbar.setTitleTextColor(int color);设置标题文字颜色;
6.Toolbar.setSubtitleTextColor();设置子标题文字颜色;

代码:

package com.example.toolbar;

import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Toolbar toolbar;
    private DrawerLayout drawerLayout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//不用自带的
        setContentView(R.layout.activity_main);
        toolbar = findViewById(R.id.toolbar);
        drawerLayout=findViewById(R.id.draw);
        toolbar.setLogo(R.mipmap.ic_launcher_round);
        toolbar.setNavigationIcon(R.mipmap.ic_launcher);
        toolbar.setTitle("工具条");
        toolbar.setSubtitle("1705工具条");
        View inflate = LayoutInflater.from(this).inflate(R.layout.bar, null);//自定义布局
        toolbar.addView(inflate);
        setSupportActionBar(toolbar);//使用toolBar
    }
    //创建菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu,menu);
        return super.onCreateOptionsMenu(menu);
    }
    //菜单添加事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getItemId()==R.id.menu1){
            Toast.makeText(this,"点了第一个菜单",Toast.LENGTH_SHORT).show();
        }else if(item.getItemId()==R.id.menu2){
            Toast.makeText(this,"点了第二个菜单",Toast.LENGTH_SHORT).show();
        }
        return super.onOptionsItemSelected(item);
    }

二.DrawerLayout常用的方法

DrawerLayout.isDrawerOpen(Gravity.LEFT)是否开启;
DrawerLayout.openDrawer(Gravity.LEFT);开启抽屉

  public void open(View view) {
            drawerLayout.openDrawer(Gravity.RIGHT);//开抽屉
        }
    
        public void close(View view) {
            drawerLayout.closeDrawer(Gravity.RIGHT);//关抽屉
        }
    }

三、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);

package com.example.toolbar;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        SlidingMenu s= new SlidingMenu(this);
        s.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//滑动方式、(充满整个屏幕)
        s.setMode(SlidingMenu.LEFT);//滑出来的方向
        View inflate = View.inflate(this, R.layout.bar, null);
        s.setMenu(inflate);
        s.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);//把SlidingMenu和activity关联
    }
}

效果图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Drawlayout实现带动画的ToolBar DrawLayout结合ToolBar实现带动画的菜单 立即下载

相关推荐

ToolBar+NavigationDraw实现炫酷的侧边栏

ToolBar+NavigationDraw实现炫酷的侧边栏

DrawerLayoutSlidingMenu有什么区别

slidingmenu:滑动菜单 drawerlayout:抽屉式菜单 看了slidingmenu的 源码就知道区别 区别就是slidingmenu 也是将view分为上下两层 但是最上层的是主内容页而下一层才是菜单页。而drawerlayout的实现是刚好相反的 菜单页是在内容页之上的 而且据我掌握的 slidingmenu的菜单宽度可以利用与菜单目标方向相距多少来确定

yy_451686712的专栏 2132

SlidingMenuDrawerLayout的区别

SlidingMenu是一个开源框架实现效果更好,但是DrawerLayout直接写布局文件就好了。但是实现效果并没有SlidingMenu那么好。SlidingMenu与ViewPager搭配使用的时候避免左右滑动的时候SlidingMenu响应,可以自定义一个HorizontalScrollViewPager,实现水平滑动ViewPager通过反拦截返回true实现.

Hi_AndG的博客 997

toolbardrawlayout使用,左上角图标切换动画

在Android5.0以后,系统自带了左上角切换动画,但是需要导入v7包的 首先是布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="matc

jt_ontheway的博客 2862

第九单元:ActionBarDrawLayoutSlidingMenu

一:实现DrawLayout 二:实现SlidingMenu 三:实现ActionBar 1.DrawLayout package com.example.app2; import androidx.appcompat.app.AppCompatActivity; import androidx.drawerlayout.widget.DrawerLayout; import android....

weixin_43956180的博客 197

Material Design学习笔记之Toolbar+DrawerLayout

Toolbar+DrawerLayout

当初游的快了一点 4234

Android中toolbar+DrawerLayout+NavigationView打造简单方便的侧滑栏目

1 ToolbarToolbar是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件 ,Google 非常推荐大家使用 Toolbar 来作为Android客户端的导航栏,以此来取代之前的 Actionbar 。 首先来看toolbar的布局文件 layout_toolbar.xml<?xml version="1.0" encoding="utf-8"?

abfdada的博客 2352

Android控件之Toolbar + DrawerLayout的使用

载请标明出处: http://blog.csdn.net/u011974987/article/details/50963495; 最近闲着没事儿,在关注一些遵循最新的Material Design设计规范的应用效果,感觉很高大上;一直都没有去尝试过Material Design的一些新控件,很多还是不熟悉的,所以最近就写Demo 来熟悉下这些控件的使用,接下来

stromxu 的专栏 2424

ToolBar+DrawLayout+Navigation界面实战

一、ToolBar 1.基本用法   android系统默认显示的是ActionBar,这个是根据项目中指定的主题来显示的,我们新建一个项目MyApplication,打开AndroidManifest.xml文件看一下: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.shuting.my

weixin_43436958的博客 969

GPS定位与高德地图的使用

转自高德地图、获取key 代码 package com.example.map; import android.Manifest; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import a...

Transparent_v的博客 1408

腾讯云直播

一. 原理: 主播:推流(推流地址) 观众:拉流(播放地址) 二.登陆官网 https://cloud.tencent.com/ 三.查看官方文档 四.复制代码 推流代码 package com.example.tengxunyun; import android.Manifest; import android.os.Build; import android.support.v7.app.A...

Transparent_v的博客 1204

第一单元 HTTP基本使用方法

1.1. HTTP传输协议 1.1.1什么是HTTP协议(概念) 1.1.2HTTP协议的主要的特点 1.1.3HTTP协议的会话方式 1.1.4HTTP 1.0HTTP1.1的区别 1.2. GET与POST请求 1.2.1 7种请求方式,其中最常用的是GETPOST 1.2.2 请求头 1.2.3 请求体 1.2.4 响应码 1.3. 文件上传 1.3.1 图片上传 1.4. 文件...

Transparent_v的博客 660

第十八单元 使用MediaPlayer完成音乐播放器(内容提供者获得本地所有音频)

使用MediaPlayer完成音乐播放器 项目需求: 1.播放本地音乐: 2.播放网络音乐: 3.完成音乐列表, MediaPlayer常用的方法: void setDataSource(String path) :通过一个具体的路径来设置MediaPlayer的数据源,path可以是本地的一个路径,也可以是一个网络路径 int getCurrentPosition() 获取当前播放的位置 int...

Transparent_v的博客 596

第八单元 万能适配器BaseRecyclerViewAdapterHelper的使用

RecyclerView的万能适配器 首先写一个万能适配器的Holder的对象继承RecyclerView.ViewHolder 里面重写BaseHolder方法 然后定义一个getView方法从容器中取控件的id,这里要说的是 我们可以定义一个SparseArray的集合,设置View的泛型 从集合中根据id取控件 然后写一个BaseAdapter的适配器,继承RecyclerView.Adap...

Transparent_v的博客 579

第二单元 Menu菜单及PopupWindow弹窗

第二单元 Menu菜单 第2天Menu菜单 常用的菜单 1.系统菜单OptionsMenu 步骤流程: 2.上下文菜单ContextMenu 3.弹出菜单 常用的菜单 菜单 显示菜单 事件监听 系统菜单 onCreateOptionsMenu onOptionsItemSelected 上下文菜单 AlertDialog.Builder() setSingleChoiceI...

Transparent_v的博客 533

友盟

友盟 看官方API :开发者文档 /** 1.创建产品获得key:push产品 2.集成SDK (1)share:手动集成 (2)push统计:自动集成(注意 项目gradle需要添加 maven { url ‘https://dl.bintray.com/umsdk/release’ }) 3.推送 4.分享 5.统计 */ package com.example.youmeng; i...

Transparent_v的博客 524

第二十单元 使用MediaPlayer+Service+Broadcast完成音乐播放器

使用MediaPlayer+Service+Broadcast完成音乐播放器 1,封装歌曲的类 public class Song { private String singer; private String song; private String path; private int duration; private long size; pr...

Transparent_v的博客 502

SVN以及SVN China,以及组件化

SVN介绍以及SVN China介绍 SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理 SVN China相当于服务器,可以将项目提交上去,也可以通过版本库URL下载项目,修改了项目再提交(可以文件右击提交,也可以Studio里提交),下载的更新最新版本(先更新最新版本再...

Transparent_v的博客 491
上一篇: 第八单元 万能适配器和BaseRecyclerViewAdapterHelper的使用
下一篇: 第十单元 照相机与fileprovider机制
安久儿
博客等级 码龄7年 2粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值