`
yidongkaifa
  • 浏览: 4063440 次
文章分类
社区版块
存档分类
最新评论

Android学习笔记(二四): 多页显示-SlidingDrawer的使用

 
阅读更多

这个图可以在Android的doc中,误操作,将原来图片删去,所以上面只是范例,没有透明效果

SlideDrawer是多个(两个页面)的一种显示方式。如上左图所示,普通的,我们显示Hello的Label,当我们按下面的SlidingDrawer的ImageView,即右图所示图标时,可以将SlideDrawer的内容显示上去,如中图。SlidingDrawer可以在Open和Close两个状态之间切换。Open时覆盖,不是所有的Layout都能支持这种叠加覆盖,作为SlidingDrawer的container,例如LinearLayout就不可以,一般使用RelativeLayout和FrameLayout。下面是例子的XML文件,采用了FrameLayout作为容器:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF8888CC
">
<TextViewandroid:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textStyle="bold"
android:gravity="center"
android:text="Hello"
/><!-- 我们采用了简单的TextView表示原本页的内容,在SlidingDrawer处于Close时显示,如左图-->
<SlidingDrawerandroid:id="@+id/c96_drawer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"

<!-- SlidingDrawer中包含两个重要参数handle和content,类似于Tab的标签和内容,我们需要在这里设定相关的id,以便引用-->
android:handle="@+id/c96_handle"
android:content="@+id/c96_content" >

<ImageViewandroid:id="@id/c96_handle"<!-- 和SlidingDrawer的handle的id相一致,一般而言会是一个Image,当然我们也可以设置为Button等其他,只是美观上欠佳。-->
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/tray_handle_normal" />
<Button android:id="@id/c96_content"<!-- 和SlidingDrawer的content的id相一致,这里我们简单用Button来处理-->
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="I am in Here"
/>
</SlidingDrawer>
</FrameLayout>

源文件无须特别处理,对于SlidingDrawer,可以open(), close() , toggle() ,也可以采用动画的方式anmiateOpen(),animateClose()和animateToggle()。可以在XML中设置android:animateOnClick ="true" ,缺省为真。

我们还可以设置lock()和unlock()。

我们可以对SlidingDrawer的事件进行监听:openen,closed,scrolled(用户拖拽标签)。例如:setOnDrawerCloseListener(SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener)。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics