Android DrawerLayout实现侧拉菜单功能
发布时间 - 2026-01-11 01:48:05 点击率:次效果图
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.lenovo.mydrawerlayout.MainActivity">
<android.support.v4.widget.DrawerLayout
android:layout_width="match_parent"
android:id="@+id/drawer_layout"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这是主界面"
/>
</LinearLayout>
<LinearLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#f00"
>
<TextView
android:id="@+id/t"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这是侧拉界面"
/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
注:DrawerLayout下有两个布局,DrawerLayout的第一个子元素是主要内容,即抽屉没有打开时显示的布局,DrawerLayout的第二个子元素是抽屉中的内容,即抽屉布局,layout_gravity为侧拉方向
因为用到Toolbar所以要把ActionBar替换了所以设置
values下设置styles.xml 为NoActionBar
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
MainActivity
package com.example.lenovo.mydrawerlayout;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Toolbar代替ActionBar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// DrawerLayout
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
//Toolbar上面最左边显示三杠图标监听DrawerLayout
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
//侧拉页面字体
TextView t= (TextView) findViewById(R.id.t);
t.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v, "侧拉页面", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
}
# Android
# DrawerLayout实现侧拉菜单功能
# Android实现右边抽屉Drawerlayout效果
# Android侧滑菜单之DrawerLayout用法详解
# Android使用DrawerLayout实现仿QQ双向侧滑菜单
# Android App中DrawerLayout抽屉效果的菜单编写实例
# Android侧滑菜单控件DrawerLayout使用详解
# Android中DrawerLayout+ViewPager滑动冲突的解决方法
# Android原生侧滑控件DrawerLayout使用方法详解
# Android组件之DrawerLayout实现抽屉菜单
# Android中DrawerLayout实现侧滑菜单效果
# Android抽屉布局DrawerLayout的简单使用
# 这是
# 要把
# 主要内容
# 有两个
# vertical
# orientation
# drawer_layout
# attr
# toolbar
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
文字头像制作网站推荐软件,醒图能自动配文字吗?
JavaScript如何实现音频处理_Web Audio API如何工作?
如何在IIS7上新建站点并设置安全权限?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
Laravel如何处理和验证JSON类型的数据库字段
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
Python3.6正式版新特性预览
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
WEB开发之注册页面验证码倒计时代码的实现
如何在云指建站中生成FTP站点?
如何在宝塔面板中创建新站点?
制作旅游网站html,怎样注册旅游网站?
利用 Google AI 进行 YouTube 视频 SEO 描述优化
如何选择PHP开源工具快速搭建网站?
javascript基于原型链的继承及call和apply函数用法分析
C++时间戳转换成日期时间的步骤和示例代码
iOS中将个别页面强制横屏其他页面竖屏
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
Laravel API资源类怎么用_Laravel API Resource数据转换
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
网站制作价目表怎么做,珍爱网婚介费用多少?
简历没回改:利用AI润色让你的文字更专业
Laravel如何升级到最新版本?(升级指南和步骤)
奇安信“盘古石”团队突破 iOS 26.1 提权
如何用花生壳三步快速搭建专属网站?
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在Windows 2008云服务器安全搭建网站?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
高端建站如何打造兼具美学与转化的品牌官网?
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
如何在Tomcat中配置并部署网站项目?
Python文本处理实践_日志清洗解析【指导】
如何用y主机助手快速搭建网站?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
如何用IIS7快速搭建并优化网站站点?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析

