Android控件之SlidingDrawer(滑动式抽屉)详解与实例分享

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("开始拖动");
   }
  });
 }
}

时间: 2024-09-22 16:57:16

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

Android控件之SlidingDrawer(滑动式抽屉)详解与实例分享_Android

SlidingDrawer效果想必大家也见到过,它就是1.5模拟器上进入应用程序列表的效果.下面是截图 一.简介  SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容.它可以垂直或水平滑动,它有俩个View组成,其一 是可以拖动的handle,其二是隐藏内容的View.它里面的控件必须设置布局,在布局文件中必须指定handle和content.例如下面 复制代码 代码如下: <SlidingDrawer android:layout_width="fill_

Android开发之基本控件和四种布局方式详解_Android

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A

Android开发之基本控件和四种布局方式详解

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A

JS中artdialog弹出框控件之提交表单思路详解_javascript技巧

artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口. 前言: 自适应内容 artDialog的特殊UI框架能够适应内容变化,甚至连外部程序动态插入的内容它仍然能自适应,因此你不必去考虑消息内容尺寸使用它.它的消息容器甚至能够根据宽度让文本居中或居左对齐--这一切全是XHTML+CSS原生实现. 完善的接口 它的接口完善,可以轻易与外部程序配合使用.如异步写入消息.控制位置.尺寸.显示与隐藏.关闭等. 细致的体验 如果不是在输入状态,它支持Esc快捷键关

Android 中Crash时如何获取异常信息详解及实例

Android 中Crash时如何获取异常信息详解 前言: 大家都知道,Android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于Android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络状况.当crash发生时,系统会kill掉你的程序,表现就是闪退或者程序已停止运行,这对用户来说是很不友好的,也是开发者所不愿意看到的,更糟糕的是,当用户发生了crash,开发者却无法得知程序为何crash,即便你想去解决这个crash,

《Android 平板电脑开发实战详解和典型案例》——滑动式抽屉—— SlidingDrawer

2.7 滑动式抽屉-- SlidingDrawerAndroid 平板电脑开发实战详解和典型案例上一节中,介绍了可展开列表ExpandableListView的基本知识及简单案例,本节将介绍Android 2.0控件滑动式抽屉SlidingDrawer,主要内容包括其基本知识以及一个简单的案例. 2.7.1 滑动式抽屉基本知识滑动式抽屉SlidingDrawer在UI布局有限或放不下太多控件的时候可以使用,滑动式抽屉SlidingDrawer可以隐藏屏外的内容,在布局文件中必须指定handle和

Android群英传笔记——第三章:Android控件架构与自定义控件讲解

Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基础的,可以先看下我之前写的几篇基础的View博客 Android绘图机制(一)--自定义View的基础属性和方法 Android绘图机制(二)--自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解 Android绘图机制(三)--自定义View的三种实现方式以及实战

Android控件系列之Toast使用介绍_Android

Toast英文含义是吐司,在Android中,它就像烘烤机里做好的吐司弹出来,并持续一小段时间后慢慢消失 Toast也是一个容器,可以包含各种View,并承载着它们显示. 使用场景: 1.需要提示用户,但又不需要用户点击"确定"或者"取消"按钮. 2.不影响现有Activity运行的简单提示. 用法: 1.可以通过构造函数初始化: 复制代码 代码如下: //初始化Toast Toast toast = new Toast(this); //设置显示时间,可以选择To

Android控件系列之Button以及Android监听器使用介绍_Android

学习目的: 1.掌握在Android中如何建立Button 2.掌握Button的常用属性 3.掌握Button按钮的点击事件(监听器) Button是各种UI中最常用的控件之一,它同样也是Android开发中最受欢迎的控件之一,用户可以通过触摸它来触发一系列事件,要知道一个没有点击事件的Button是没有任何意义的,因为使用者的固定思维是见到它就想去点! 先看下Android中普通Button的样子: 以及点中Button后的样子: 我在Android控件系列之XML静态资源中已经强调了布局和