SlidingDrawer效果想必大家也见到过,它就是1.5模拟器上进入应用程序列表的效果。下面是截图

一、简介

  SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容。它可以垂直或水平滑动,它有俩个View组成,其一是可以拖动的handle,其二是隐藏内容的View.它里面的控件必须设置布局,在布局文件中必须指定handle和content.

例如下面

<SlidingDrawer android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:handle="@+id/handle"
  android:content="@+id/content" android:orientation="vertical"
  android:id="@+id/slidingdrawer">

<ImageButton android:id="@id/handle" android:layout_width="50dip"
   android:layout_height="44dip" android:src="@drawable/up" />

<LinearLayout android:id="@id/content"
   android:layout_width="fill_parent" android:layout_height="fill_parent" 
   android:background="#ffffff">

<TextView android:text="这是一个滑动式抽屉的示例" 
   android:id="@+id/tv"
   android:textSize="18px"
   android:textColor="#000000"
   android:gravity="center_vertical|center_horizontal"
   android:layout_width="match_parent" 
   android:textStyle="bold"
   android:layout_height="match_parent"></TextView>
  </LinearLayout>

</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。

四、完整实例

1.布局文件slidingdrawer.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent" android:layout_height="fill_parent"
 android:orientation="vertical" android:background="@drawable/default_bg">

<SlidingDrawer android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:handle="@+id/handle"
  android:content="@+id/content" android:orientation="vertical"
  android:id="@+id/slidingdrawer">

<ImageButton android:id="@id/handle" android:layout_width="50dip"
   android:layout_height="44dip" android:src="@drawable/up" />

<LinearLayout android:id="@id/content"
   android:layout_width="fill_parent" android:layout_height="fill_parent" 
   android:background="#ffffff">

<TextView android:text="这是一个滑动式抽屉的示例" 
   android:id="@+id/tv"
   android:textSize="18px"
   android:textColor="#000000"
   android:gravity="center_vertical|center_horizontal"
   android:layout_width="match_parent" 
   android:textStyle="bold"
   android:layout_height="match_parent"></TextView>
  </LinearLayout>

</SlidingDrawer>
</LinearLayout>

2.Java代码

package com.wjq;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageButton;
import android.widget.SlidingDrawer;
import android.widget.TextView;

public class SlidingDrawerDemo extends Activity {
private SlidingDrawer mDrawer;
private ImageButton imbg;
private Boolean flag=false;
private TextView tv;
 /* (non-Javadoc)
  * @see android.app.Activity#onCreate(android.os.Bundle)
  */
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.sildingdrawer);
  
  imbg=(ImageButton)findViewById(R.id.handle);
  mDrawer=(SlidingDrawer)findViewById(R.id.slidingdrawer);
  tv=(TextView)findViewById(R.id.tv);
  
  mDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener()
  {
   @Override
   public void onDrawerOpened() {
    flag=true;
    imbg.setImageResource(R.drawable.down);
   }
   
  });
  
  mDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener(){

@Override
   public void onDrawerClosed() {
    flag=false;
    imbg.setImageResource(R.drawable.up);
   }
   
  });
  
  mDrawer.setOnDrawerScrollListener(new SlidingDrawer.OnDrawerScrollListener(){

@Override
   public void onScrollEnded() {
    tv.setText("结束拖动");
   }

@Override
   public void onScrollStarted() {
   tv.setText("开始拖动");
   }
   
  });

}

}

http://www.cnblogs.com/salam/archive/2010/10/19/1855511.html

Android控件之SlidingDrawer(滑动式抽屉)详解与实例的更多相关文章

  1. ActiveX控件打包、签名、嵌入详解

    ActiveX控件打包.签名.嵌入详解 前言 在我们的一个项目中,使用到了大华网络监控摄像头枪机,网络上下载了其ActiveX插件,但是发现其所提供的类库没有打包处理.这就导致我们每次给用户安装的时候 ...

  2. Android控件进阶-自定义流式布局和热门标签控件

    技术:Android+java   概述 在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何 自定义一个类似热门标签那样的流式布局吧,类 ...

  3. C# 控件双缓冲控制 ControlStyles 枚举详解

    ControlStyles 枚举 .NET Framework 4    指定控件的样式和行为. 此枚举有一个 FlagsAttribute 特性,通过该特性可使其成员值按位组合. 命名空间:  Sy ...

  4. Web自动化框架LazyUI使用手册(4)--控件抓取工具Elements Extractor详解(批量抓取)

    概述 前面的一篇博文详细介绍了单个控件抓取的设计思路&逻辑以及使用方法,本文将详述批量控件抓取功能. 批量抓取:打开一个web页面,遍历页面上所有能被抓取的元素,获得每个元素的iframe.和 ...

  5. android控件跟随手势滑动改变位置

    要求:1.通过手指移动来拖动图片   2.控制图片不能超出屏幕显示区域 技术点:1.MotionEvent处理2.对View进行动态定位(layout) activity_main.xml: < ...

  6. Android: SlidingDrawer(滑动式抽屉)

    Android控件之SlidingDrawer(滑动式抽屉)详解与实例 一.简介  SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容.它可以垂直或水平滑动,它有俩个V ...

  7. 【Android】自己定义控件实现可滑动的开关(switch)

    ~转载请注明来源:http://blog.csdn.net/u013015161/article/details/46704745 介绍 昨天晚上写了一个Android的滑动开关, 即SlideSwi ...

  8. android控件的属性

    android控件的属性 本节描述android空间的位置,内容等相关属性及属性的含义 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 ( ...

  9. Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...

随机推荐

  1. SQL Server去掉字段内的双引号

    今天在客户处遇到一个问题,用powershell抓取出的数据插入SQL中后每个字段都会自动带双引号“”如下: 现在想将此双引号去掉,用下面语句即可: insert into #A select SUB ...

  2. alu features menu

    可以把所有的custom menu和menu link移植到新的环境下,并且增加新的menu link不会吧module变成overridden, 只需到时recreate生成一个新的module包, ...

  3. python核心编程第六章练习6-9

    6-9.转换.为练习5-13写一个姊妹函数,接受分钟数,返回小时数和分钟数.总时间不变,并且要求小时尽可能大.[答案]代码如下: #!/usr/bin/env python # translate m ...

  4. 4s前置摄像头调用

    最近做了个抓拍的功能需要调用前置摄像头,在5s,6s,6plus上面都能正常调用,但是在4s上调用摄像头会出现白色.开始以为是手机的原因,后来百度4s的前后摄像头的像素,发现前置摄像头的像素非常低,于 ...

  5. GIT ON WINDOWS

    https://help.github.com/articles/generating-an-ssh-key/

  6. Linux服务器数据库的导入和导出

    一.导出: 用mysqldump命令行 命令格式 mysqldump -u 用户名 -p 数据库名 > 数据库名.sql 范例: mysqldump -u root -p abc > ab ...

  7. EXCEPT差集运算

    EXCEPT差集运算在逻辑上先删除两个输入多集中的重复行,把多集变成集合,然后返回只在第一个集合中出现,在第二个集合中不出现的所有行.可以看下面示意图.

  8. JavaWeb chapter 2 Servlet

    1.  什么是Servlet: Servlet是运行于Web容器中,按照其自身规范编写的Java应用程序. Servlet是用Java语言编写的,它是一个Java类,因而Servlet遵守所有Java ...

  9. scrapy数据存入mongodb

    存入mongodb的pipelines文件是这样子写的 from openpyxl import Workbook from scrapy.conf import settings import py ...

  10. curl请求的时候总是提示400

    今天用curl测试一个接口,一直提示400 最后发现是url的问题,如下处理就可以了 $url = str_replace(' ', '+', $url);