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 ...
随机推荐
- 【sicily】卡片游戏
卡片游戏 Time Limit: 1sec Memory Limit:32MB Description 桌上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n.当至少还剩两张牌 ...
- Powershell查看SSAS Cube占用磁盘空间
以下是用powershell查看Cube占用磁盘空间大小的方式.可以编译成函数也可以直接把参数改成需要的服务器名称. Param($ServerName="SERVERNAME") ...
- Win10 兼容性 Visual studio web应用程序 ASP.NET 4.0 尚未在 Web 服务器上注册
系统升级到windows10 ,Visual studio 创建web应用程序时出现如下提示ASP.NET 4.0尚未在 Web 服务器上注册.为了使网站正确运行,可能需要手动将 Web 服务器配置为 ...
- Oracle【IT实验室】数据库备份与恢复之四:RMAN(备份与恢复管理器)
RMAN是ORACLE提供的一个备份与恢复的工具,可以用来备份和还原数据库文件. 归档日志和控制文件.它也可以用来执行完全或不完全的数据库恢复. RMAN可以由命令行接口或者 OEM的 Backup ...
- 进程控制理论,王明学learn
进程控制理论 一.进程 进程是一个具有一定独立功能程序的一次运行活动. 1.1进程特点 1.动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的 2.并发性:任何进程都可以同其他进程一起 ...
- Codeforces Beta Round #95 (Div. 2) D.Subway
题目链接:http://codeforces.com/problemset/problem/131/D 思路: 题目的意思是说给定一个无向图,求图中的顶点到环上顶点的最短距离(有且仅有一个环,并且环上 ...
- jQuery全局函数
全局函数是对jQuery对象的扩展,其中扩展方法包括: 一,extend扩展: //调用全局函数$(document).ready(function () { $.myFunction(); $.my ...
- EditText监听键盘输入
第一步,先在布局中为EditText设置属性 <EditText android:singleLine="true" android:imeOptions="act ...
- loadruner知识点小结
1.Download Filters功能 帮助在回放脚本的时候对某些特定的访问进行屏蔽,解决页面读取中跨服务器带来数据影响的问题. 过滤规则中有3中策略,即URL.Host.HostSfx 区别于: ...
- LoadRunner检查点
web_reg_find("Text=ABC", "SaveCount=abc_count", LAST);51Testing软件测试网V?2Rs.J Gmdw ...