官网:https://developer.android.com/training/implementing-navigation/nav-drawer.html

贴上主要的逻辑和布局文件:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- content -->
<FrameLayout
android:id="@+id/drawer_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<!-- Drawer-->
<ListView
android:id="@+id/drawer_menu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:background="#FFF0F0F0"
android:layout_gravity="start"/>
<!--
android:choiceMode 选中状态 跟onItemClick没有冲突
none 值为0,表示无选择模式;
singleChoice 值为1,表示最多可以有一项被选中;
multipleChoice 值为2,表示可以多项被选中。
android:layout_gravity left或right left或start right或end
表示在抽屉里的效果是从左到右还是从右到左出现
-->
</android.support.v4.widget.DrawerLayout>
这里需要注意一下:content主界面一定要定义在drawer的前面,另外,Android:layout_gravity="start"(从左往右)或者android:layout_gravity="end"(从右往左),这个属性是必须要定义的,不然出现下面的异常:
MainActivity.java
package com.jackie.drawerlayoutdemo;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private String mTitle;
private DrawerLayout mDrawerLayout;
private ListView mDrawerMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
//默认打开抽屉
mDrawerLayout.openDrawer(mDrawerMenu);
}
private void initView() {
mTitle = getResources().getString(R.string.app_name);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerMenu = (ListView) findViewById(R.id.drawer_menu);
}
private void initData() {
//数组定义在xml 文件中
String[] items = getResources().getStringArray(R.array.left_drawer_items);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1);
adapter.addAll(items);
mDrawerMenu.setAdapter(adapter);
mDrawerMenu.setSelection(0);
//设置点击item事件
mDrawerMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mTitle = ((TextView) view).getText().toString();
switchFragment();
mDrawerLayout.closeDrawer(mDrawerMenu);
mDrawerMenu.setSelection(position);
}
});
}
private void switchFragment() {
getSupportFragmentManager().beginTransaction().replace(R.id.drawer_container, new ItemFragment(mTitle)).commit();
getSupportActionBar().setTitle(mTitle);
}
}
效果图如下:
以上所述是小编给大家介绍的Android DrawerLayout实现抽屉效果实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# android
# drawerlayout
# drawerlayout抽屉
# Android开发之DrawerLayout实现抽屉效果
# Android实现右边抽屉Drawerlayout效果
# 使用DrawerLayout组件实现侧滑抽屉的功能
# Android App中DrawerLayout抽屉效果的菜单编写实例
# Android组件之DrawerLayout实现抽屉菜单
# 利用DrawerLayout和触摸事件分发实现抽屉侧滑效果
# 值为
# 是从
# 小编
# 最多
# 在此
# 给大家
# 多项
# 贴上
# 所述
# 需要注意
# 给我留言
# 官网
# 感谢大家
# 抽屉里
# 往右
# 往左
# 疑问请
# 有任何
# 必须要
# background
相关文章:
javascript中的try catch异常捕获机制用法分析
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
如何挑选最适合建站的高性能VPS主机?
网站图片在线制作软件,怎么在图片上做链接?
SQL查询语句优化的实用方法总结
香港服务器WordPress建站指南:SEO优化与高效部署策略
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
Android使用GridView实现日历的简单功能
C++如何编写函数模板?(泛型编程入门)
建站之星代理如何优化在线客服效率?
如何在七牛云存储上搭建网站并设置自定义域名?
如何批量查询域名的建站时间记录?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
名字制作网站免费,所有小说网站的名字?
清除minerd进程的简单方法
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
高防服务器:AI智能防御DDoS攻击与数据安全保障
jQuery 常见小例汇总
如何高效配置香港服务器实现快速建站?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
建站主机如何安装配置?新手必看操作指南
如何用好域名打造高点击率的自主建站?
建站之星安装模板失败:服务器环境不兼容?
建站之星ASP如何实现CMS高效搭建与安全管理?
如何有效防御Web建站篡改攻击?
上海网站制作开发公司,上海买房比较好的网站有哪些?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
详解jQuery中基本的动画方法
,制作一个手机app网站要多少钱?
如何通过宝塔面板实现本地网站访问?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
,有什么在线背英语单词效率比较高的网站?
开封网站制作公司,网络用语开封是什么意思?
网站制作企业,网站的banner和导航栏是指什么?
宁波自助建站系统如何快速打造专业企业网站?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
行程制作网站有哪些,第三方机票电子行程单怎么开?
如何用搬瓦工VPS快速搭建个人网站?
常州自助建站工具推荐:低成本搭建与模板选择技巧
西安专业网站制作公司有哪些,陕西省建行官方网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
建站之星CMS五站合一模板配置与SEO优化指南
*请认真填写需求信息,我们会在24小时内与您取得联系。