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("开始拖动");
}
});
}
}
<script type="text/javascript"></script>
分享到:
相关推荐
在Android Studio 3.0版本中,虽然SlidingDrawer已被弃用,但它仍然是许多老项目中的常见元素,理解其工作原理和使用方法对维护这些项目至关重要。 **一、SlidingDrawer基本概念** SlidingDrawer是Android SDK提供...
1. **在XML布局文件中添加SlidingDrawer**:使用`<SlidingDrawer>`标签,并设置`android:handle`为手柄视图的ID,`android:content`为内容视图的ID。 2. **设置属性**:可以设置抽屉的开启状态(`android:open`)、...
综上所述,虽然 SlidingDrawer 在现代 Android 开发中已较少使用,但理解它的工作原理对于理解滑动抽屉的设计模式和如何在新组件中实现类似效果仍然是有价值的。如果你的项目还在使用 SlidingDrawer,可能需要考虑...
在本篇Android学习笔记中,我们将探讨如何使用SlidingDrawer实现多页显示,并理解其工作原理和相关属性。 首先,SlidingDrawer通常用于在主界面下方或上方滑出额外的内容,例如菜单、设置或附加信息。它有两个主要...
总之,虽然SlidingDrawer已不再推荐使用,但了解它的基本原理和使用方法可以帮助我们更好地理解和实现Android中的滑动抽屉效果。在实际项目中,开发者应优先考虑使用更新的组件来保证应用的兼容性和最佳用户体验。
在Android开发中,`SlidingDrawer`是一个非常实用的组件,它允许用户通过手势从屏幕边缘滑动出一个隐藏的抽屉,常用于存放菜单、设置或其他附加功能。本范例程序深入展示了如何有效地实现这一功能,使得用户界面更加...
总结来说,这个项目不仅涉及到SlidingDrawer的使用,还涵盖了GridView、Adapter模式和PackageManager的使用,是学习Android UI设计和数据绑定的好实例。对于初学者而言,这个项目提供了实践这些基础知识的机会,有助...
提供的"SlidingDraw的使用"文件很可能是包含一个简单的SlidingDrawer使用示例,包含了XML布局和对应的Java代码。通过查看和运行这些代码,新手可以更好地理解SlidingDrawer的工作原理及其用法。 7. **注意事项** ...
这个实例是专为初学者设计的,展示了如何使用SlidingDrawer从底部向上滑动的效果。 首先,我们需要了解SlidingDrawer的基本用法。在布局XML文件中,SlidingDrawer作为顶级容器添加,有两个必需的子元素:一个用于...
SlidingDrawer的使用主要包括以下几个关键知识点: 1. **布局定义**:在XML布局文件中,我们需要添加SlidingDrawer标签,并设置相应的属性,如`android:handle`指定手柄(通常是按钮或图像),`android:content`...
需要注意的是,SlidingDrawer在Android API Level 17后已被弃用,推荐使用`android.support.v4.widget.DrawerLayout`或自定义视图实现类似功能。对于低版本的Android系统,可以继续使用SlidingDrawer,但在高版本中...
在早期的Android版本中,SlidingDrawer是开发者常用来创建侧边栏菜单的工具,但在Android设计指南推荐使用NavigationView之后,其使用频率有所下降。尽管如此,SlidingDrawer仍然在某些特定场景下有其独特的价值,...
同时,随着Android版本的更新,SlidingDrawer在新版本中可能已经被弃用,开发者也可以考虑使用其他替代组件,如CoordinatorLayout配合Behavior来实现类似的效果。 总之,自定义四个方向的SlidingDrawer需要对...
以下是一个简单的SlidingDrawer使用示例: ```xml <SlidingDrawer android:layout_width="fill_parent" android:layout_height="fill_parent" android:handle="@+id/handle" android:content="@+id/content" ...
在代码中,我们会使用R.id.drawer、R.id.handle和R.id.content来引用SlidingDrawer及其组件。 proguard.cfg文件是ProGuard配置,用于混淆和优化代码,提高应用的安全性和性能。而.classpath和.project是Eclipse或...
例如,SlidingDrawer在Android 5.0(API级别21)后被弃用,建议使用其他的侧滑菜单库,如`android.support.design.widget.BottomSheetBehavior`或第三方库如SlideUpPanelLayout。源码中可能包含了这些兼容性处理的...
### SlidingDrawer的基本使用 在XML布局文件中,SlidingDrawer可以通过以下方式定义: ```xml <SlidingDrawer android:id="@+id/sliding_drawer" android:layout_width="match_parent" android:layout_height=...
以下是一个简单的SlidingDrawer使用示例: ```xml <SlidingDrawer android:layout_width="fill_parent" android:layout_height="fill_parent" android:handle="@+id/handle" android:content="@+id/content" ...