Android 抽屉布局
目前部分APP使用一种类似抽屉式的布局,像QQ那种,感觉很炫,自己也一直想做一个像那样的布局,(ps网上很多这样的例子,我下面做的就是参考网上的改变的)
废话不就不说了,直接上代码
1、首先建立一个布局文件activity_drawer.xml
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".DrawerActivity"> 10 <android.support.v4.widget.DrawerLayout<!--重点在这里--> 11 android:id="@+id/drawer_layout" 12 android:layout_width="match_parent" 13 android:layout_height="match_parent"> 14 <FrameLayout 15 android:id="@+id/content_frame" 16 android:layout_width="match_parent" 17 android:layout_height="match_parent"> 18 <Button 19 android:id="@+id/btn" 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:text="打开" 23 android:layout_alignParentTop="true" 24 android:layout_alignParentLeft="true" 25 android:layout_alignParentStart="true" 26 android:layout_alignParentRight="true" 27 android:layout_alignParentEnd="true" /> 28 </FrameLayout> 29 <ListView 30 android:id="@+id/left_drawer" 31 android:layout_width="200dp" 32 android:layout_height="match_parent" 33 android:layout_gravity="start" 34 android:background="#ff349710" 35 android:choiceMode="singleChoice" 36 android:dividerHeight="0dp" 37 android:layout_marginTop="30dp" 38 /> 39 </android.support.v4.widget.DrawerLayout> 40 </RelativeLayout>
2.对应的Activity文件DrawerActivity.java
1 public class DrawerActivity extends Activity { 2 public static final String[] str = new String[]{"东部", "西部", "南部", "北部", "中部", 3 "东南部", "西北部", "西南部", "东北部", "中西部", "中南部", "中北部"}; 4 private DrawerLayout mDrawerLayout = null; 5 private ListView mlistView; 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_drawer); 10 11 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 12 mlistView = (ListView) findViewById(R.id.left_drawer); 13 14 15 //下面两种方式都可以,后者要多建立一个value的array文件 16 mlistView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,str)); 17 //mlistView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,getResources().getStringArray(R.array.planets_array))); 18 Button button = (Button) findViewById(R.id.btn); 19 button.setOnClickListener(new View.OnClickListener() { 20 21 @Override 22 public void onClick(View v) { 23 // 按钮按下,将抽屉打开 24 mDrawerLayout.openDrawer(Gravity.LEFT); 25 //mDrawerLayout.closeDrawers();//可以不监听,默认点击其他地方即可关闭 26 //adapter.notifyDataSetChanged(); 27 } 28 }); 29 //列表控件监听 30 mlistView.setOnItemClickListener(new DrawerItemClickListener()); 31 } 32 33 private class DrawerItemClickListener implements ListView.OnItemClickListener { 34 @Override 35 public void onItemClick(AdapterView parent, View view, int position, long id) { 36 selectItem(position); 37 } 38 } 39 //简单输出一些信息 40 private void selectItem(int position) { 41 new AlertDialog.Builder(this) 42 .setTitle("打开") 43 .setMessage("打开的位置是:"+position+"\n位置的值是:"+str[position]) 44 .setPositiveButton("确定", new DialogInterface.OnClickListener() { 45 @Override 46 public void onClick(DialogInterface dialogInterface, int i) { 47 //监听事件 48 } 49 }).show(); 50 } 51 }
3.简单效果如下:
这仅仅是实现了效果,关于为什么待我研究透彻了再分享。
转载于:https://www.cnblogs.com/hais/p/4710212.html
Android 抽屉布局相关推荐
- android drawLayout抽屉布局
Android drawLayout布局 Android 抽屉布局写法 <android.support.v4.widget.DrawerLayoutxmlns:android="ht ...
- Android 抽屉效果的导航菜单实现
抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而且感觉能放很多东西. 关于实现,搜索了一 ...
- android抽屉实现不同之处
相关链接: Android 抽屉效果Demo http://www.eoeandroid.com/thread-203886-1-1.html Android效果之 抽屉效果 http://www.e ...
- Android抽屉(SlidingDrawer --类似android通知栏下拉效果)
Android抽屉(SlidingDrawer)的实现发 - 红黑联盟 http://www.2cto.com/kf/201301/182507.html 可动态布局的Android抽屉之基础 htt ...
- Android抽屉页面效果
2019独角兽企业重金招聘Python工程师标准>>> DrawerLayout抽屉布局,现在主流App是越来越多使用DrawerLayout,因为这样出来的效果是比较炫酷的吧!其实 ...
- android 抽屉组件,Android组件之DrawerLayout实现抽屉菜单
DrawerLayout组件同样是V4包中的组件,也是直接继承于ViewGroup类,所以这个类也是一个容器类. 抽屉菜单的摆放和布局通过android:layout_gravity属性来控制,可选值 ...
- Android 抽屉菜单滑动时模糊背景 | 毛玻璃效果
先来看看要实现的效果图 录制的有点模糊在补一张静态图 简单的分析一下: 1⃣️一开始我一直以为抽屉菜单的背景是一张半透明的高斯模糊图片,一直尝试着用ps做一张然后发现并没有什么卵用(纯色背景或者图片是 ...
- Android主布局框架整理
Android主布局框架整理 本篇内容小生主要介绍的是几种常见的主框架的布局实现方式,仅供各位客官茶饭之余略微点评.闲话不说,切入正题. -No1.TabActivity+TabHost实现普通tab ...
- android如何看百分比版本,【JAVA】Android百分比布局
开发我人生第一个app的时候,我在想有没有这么一种布局能适应任何手机的分辨率,今天让我们一起来看看Android 百分比布局PercentRelativeLayout. 使用这种布局首先我们要在gra ...
最新文章
- 第四范式程晓澄:机器学习如何优化推荐系统
- tomcat与iis公用80端口(已经发布.net项目现在开发Java项目时tomcat在eclipse中localhost:8080打不开问题)...
- 不用IIS运行ASP.Net网站
- android 无限旋转动画,android ——不停旋转动画
- 国嵌c语言深度,国嵌C语言3部全
- java order()_java.util.Collections.reverseOrder()
- MySQL命令窗口出现中文乱码的解决方法
- python画好看的图-Python竟能画这么漂亮的花,帅呆了(代码分享)
- linux系统下 java 环境的安装
- 俄勒冈州立大学计算机科学专业,美国俄勒冈州立大学专业介绍
- SQL每日学习——delete语句
- java dump可视化在线内存分析工具
- 闲暇时间做的一个亲属关系计算器
- Designing Network Design Spaces论文导读
- 读取文本文件内容并写到excel
- 解决 ERROR oslo_service.periodic_task AttributeError: ‘ComputeNode‘ object has no attribute ‘nodename‘
- RxJava个人笔记,具象化理解
- hibernate学习(4)——实体配置详解
- eclipse gdb gdbserver 远程调试
- C4996 ‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instead.错误提示
热门文章
- python对数据进行分类_在Python中对一系列数据进行分类的最佳方法
- socket 收不到netty客户端消息_Netty开发 —— 首个demo学习
- CSDN排名及积分规则
- 图论--欧拉回路(模板)
- 支持向量机SVM(Support Vector Machines)介绍
- CSDN开播工具-嘉宾端使用说明
- C语言const 关键字
- 未成年人可以申请贷款吗?
- 2013电赛总结【西电专用】
- ARM和NEON指令 very gooooooood.............