官网: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
相关文章:
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
高性能网站服务器配置指南:安全稳定与高效建站核心方案
网站制作壁纸教程视频,电脑壁纸网站?
重庆市网站制作公司,重庆招聘网站哪个好?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
南宁网站建设制作定制,南宁网站建设可以定制吗?
如何用AWS免费套餐快速搭建高效网站?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
威客平台建站流程解析:高效搭建教程与设计优化方案
如何在香港免费服务器上快速搭建网站?
香港服务器租用每月最低只需15元?
如何在宝塔面板中修改默认建站目录?
建站VPS配置与SEO优化指南:关键词排名提升策略
XML的“混合内容”是什么 怎么用DTD或XSD定义
如何快速搭建高效可靠的建站解决方案?
安云自助建站系统如何快速提升SEO排名?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
图册素材网站设计制作软件,图册的导出方式有几种?
如何通过IIS搭建网站并配置访问权限?
如何通过智能用户系统一键生成高效建站方案?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
c# await 一个已经完成的Task会发生什么
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何选择可靠的免备案建站服务器?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站网页制作专业公司,怎样制作自己的网页?
建站之星如何实现网站加密操作?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何用免费手机建站系统零基础打造专业网站?
如何基于云服务器快速搭建网站及云盘系统?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何用花生壳三步快速搭建专属网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
建站之星如何优化SEO以实现高效排名?
seo网站制作优化,网站SEO优化步骤有哪些?
教学论文网站制作软件有哪些,写论文用什么软件
?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
免费视频制作网站,更新又快又好的免费电影网站?
如何配置支付宝与微信支付功能?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
如何彻底删除建站之星生成的Banner?
制作企业网站建设方案,怎样建设一个公司网站?
建站主机是否等同于虚拟主机?
php json中文编码为null的解决办法
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
*请认真填写需求信息,我们会在24小时内与您取得联系。