Android -- 滑式抽屉SlidingDrawer(非原创)
SlidingDrawer(滑动式抽屉)隐藏屏外的内容,并允许用户拖拽一个handle以显示隐藏的内容。SlidingDrawer可以在垂直或者水平使用。它由两个子视图组成:一个是用户拖拽的handle(柄),另一个是随着拖动变化的 content(内容)。SlidingDrawer应当作为内部布局的覆盖来使用,也就是说SlidingDrawer内部应该使用 FrameLayout或RelativeLayout布局。SlidingDrawer的大小决定了其内容显示时所占空间的大小,所以它的尺寸一般定义 为match_parent。在XML布局中SlidingDrawer必须指定handle和content的id:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <!-- 可以设置显示的方向 -->
<SlidingDrawer
android:id="@+id/slidingdraw"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:content="@+id/content"
android:orientation="horizontal"
android:handle="@+id/handle" > <ListView
android:id="@id/content"
android:layout_width="match_parent"
android:layout_height="match_parent" /> <ImageView
android:id="@id/handle"
android:layout_width="88dip"
android:layout_height="44dip"
android:contentDescription="TODO"
android:src="@drawable/ic_launcher" />
</SlidingDrawer> </LinearLayout>
public class MainActivity extends Activity {
//声明SlidingDrawer
private SlidingDrawer mDrawer;
private ImageView mImageView;
private ListView lvNews;
private String news[] =
{
"互联网产品中的情感化设计" , "有效导向社交产品的商业价值" ,
"移动开发者:得90后者得天下" ,
"用户体验:从App的加载页面说开去" ,
"用扁平化的界面设计吸引用户" , "实体与数字世界的交集" ,
"网络社区用户成长的5个思考模式" ,
"十大值得关注的传统企业电商" ,
"2013年十大热点技术发展趋势" ,
"了解产品的开发环节:环形设计论" , "客户忠诚度的四个层次" ,
"在手机背面贴张'纸'就能轻松充电" ,
"互联网公司是怎样激发你的消费欲望的" ,
"高效工作的信息搜集及管理术"
};
@ Override
protected void onCreate ( Bundle savedInstanceState ) {
super.onCreate ( savedInstanceState );
setContentView ( R.layout.activity_main );
//获得SlidingDrawer
mDrawer = ( SlidingDrawer ) findViewById ( R.id.slidingdraw );
mImageView = ( ImageView ) findViewById ( R.id.handle );
//获取ListView并填充内容
lvNews = ( ListView ) findViewById ( R.id.content );
lvNews.setAdapter ( new ArrayAdapter < String > (
this ,
android.R.layout.simple_list_item_1 ,
news ) );
//监听打开抽屉事件
mDrawer.setOnDrawerOpenListener ( new SlidingDrawer.OnDrawerOpenListener ( ) {
@ Override
public void onDrawerOpened ( ) {
mImageView.setImageResource ( R.drawable.ic_launcher );
}
} );
//监听关闭抽屉事件
mDrawer.setOnDrawerCloseListener ( new SlidingDrawer.OnDrawerCloseListener ( ) {
@ Override
public void onDrawerClosed ( ) {
mImageView.setImageResource ( R.drawable.ic_launcher );
}
} );
}
}
推荐一篇大神自定义的SlidingDrawer
属性
android:allowSingleTap:指示是否可以通过handle打开或关闭
android:animateOnClick:指示是否当使用者按下手柄打开/关闭时是否该有一个动画。
android:content:隐藏的内容
android:handle:handle(手柄)
方法
animateClose():关闭时实现动画。
close():即时关闭
getContent():获取内容
isMoving():指示SlidingDrawer是否在移动。
isOpened():指示SlidingDrawer是否已全部打开
lock():屏蔽触摸事件。
setOnDrawerCloseListener(SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener):SlidingDrawer关闭时调用
unlock():解除屏蔽触摸事件。
toggle():切换打开和关闭的抽屉SlidingDrawer。
Android -- 滑式抽屉SlidingDrawer(非原创)的更多相关文章
- android自定义实现抽屉SlidingDrawer的功能
最近项目中需要实现上拉功能,首先想到的就是Android本身自带的抽屉SlidingDrawer,最后也实现了不过,出现的问题就是设置背景色问题,handler和content是两个不同的部分,这就造 ...
- Vue 仿QQ左滑删除功能(非原创)
非原创,摘选来源:http://www.jb51.net/article/136221.htm. 废话不多说,相当实用,先记录. Html代码: <div class="contain ...
- Android Activity 切换动画(非原创)
在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity ...
- Android测试框架1(非原创)
1.继承AndroidTestCase :public class JunitTest3 extends AndroidTestCase {} 2.在AndroidManifest.xml清单文件中添 ...
- Android 多线程断点下载(非原创)
1.服务器的CPU分配给每条线程的时间片相同,服务器带宽平均分配给每条线程,所以客户端开启的线程越多,就能抢占到更多的服务器资源,这里在客户端开启多个线程来从服务器下载资源 2.fragment_ma ...
- Android测试框架2(非原创)
package com.example.sqlitedatabase.test; import android.content.ContentValues;import android.databas ...
- 微信小程序 - 沉浸式抽屉(非组件)
高度有限制,可作为管理界面,点击下载示例:drawer
- Android控件之SlidingDrawer(滑动式抽屉)详解与实例
SlidingDrawer效果想必大家也见到过,它就是1.5模拟器上进入应用程序列表的效果.下面是截图 一.简介 SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容.它 ...
- Android: SlidingDrawer(滑动式抽屉)
Android控件之SlidingDrawer(滑动式抽屉)详解与实例 一.简介 SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容.它可以垂直或水平滑动,它有俩个V ...
随机推荐
- Delphi之DLL知识学习1---什么是DLL
DLL(动态链接库)是程序模块,它包括代码.数据或资源,能够被其他的Windows 应用程序共享.DLL的主要特点之一是应用程序可以在运行时调入代码执行,而不是在编译时链接代码,因此,多个应用程序可以 ...
- Filp Game
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 25573 Accepted: 11052 题目链接: ...
- 用脚本创建和恢复 DB2数据库
CREATE DATABASE AUTOMATIC STORAGE YES ON 'C:\' DBPATH ON 'C:\' USING CODESET GBK TERRITORY CN COLLAT ...
- go-martini 简单分析之二
martini.go 对路由采用正则表达式处理,最终转化成正则表达式. 添加route对应的调用栈 按照生成,验证,添加的步骤 route := newRoute(method, pattern, h ...
- hdu 4734 数位dp
给一个数A (十进制表示形式为AnAn-1An-2 ... A2A1,定义函数 F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1,给一个B, ...
- xcrun: error: active developer path ("/XX") does not exist
MAC OS 10.9下执行命令 svn --version 报出如下错误: xcrun: error: active developer path ("/Users/username/Do ...
- android selector(转)
Selector的结构描述: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:a ...
- (C#基础) byte[] 之初始化, 赋值,转换。(转)
byte[] 之初始化赋值 用for loop 赋值当然是最基本的方法,不过在C#里面还有其他的便捷方法. 1. 创建一个长度为10的byte数组,并且其中每个byte的值为0. byte[] myB ...
- Apache Kafka for Item Setup
At Walmart.com in the U.S. and at Walmart's 11 other websites around the world, we provide seamless ...
- Mongdb使用客户端
安装Robomongo图形化管理工具 Robomongo是一个基于 Shell 的跨平台开源 MongoDB 管理工具.嵌入了 JavaScript 引擎和 MongoDB mogo . 只要你会使用 ...