This
class was deprecated in API level 17.
This class is not supported anymore. It is recommended you base your own implementation on the source code for the Android Open Source Project if you must use it in your application.
This class is not supported anymore. It is recommended you base your own implementation on the source code for the Android Open Source Project if you must use it in your application.
SlidingDrawer
hides content out of the screen and allows the user to drag a handle
to bring the content on screen. SlidingDrawer can be used vertically
or horizontally. A special widget composed of two children views: the
handle, that the users drags, and the content, attached to the handle
and dragged with it. SlidingDrawer should be used as an overlay
inside layouts. This means SlidingDrawer should only be used inside
of a FrameLayout or a RelativeLayout for instance. The size of the
SlidingDrawer defines how much space the content will occupy once
slid out so SlidingDrawer should usually use match_parent for both
its dimensions. Inside an XML layout, SlidingDrawer must define the
id of the handle and of the content:
activity_main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
>
<SlidingDrawer
android:id="@+id/slidingDrawer1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:content="@+id/content"
android:allowSingleTap="true"
android:handle="@+id/handle"
>
<Button
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/up"
/>
<LinearLayout
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical"
>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
/>
</LinearLayout>
</SlidingDrawer>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/slidingDrawer1"
android:layout_alignTop="@+id/slidingDrawer1"
android:layout_marginLeft="73dp"
android:gravity="center"
android:text="Sliding
drawer example" />
</RelativeLayout>
MainActivity.java
package
com.example.slidingdrawer;
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.Menu;
import
android.widget.Button;
import
android.widget.SlidingDrawer;
import
android.widget.SlidingDrawer.OnDrawerCloseListener;
import
android.widget.SlidingDrawer.OnDrawerOpenListener;
public
class
MainActivity extends
Activity {
Button
button;
@SuppressWarnings("deprecation")
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawer=(SlidingDrawer)findViewById(R.id.slidingDrawer1);
button=(Button)findViewById(R.id.handle);
drawer.setOnDrawerOpenListener(new
OnDrawerOpenListener() {
@Override
public
void
onDrawerOpened() {
//
TODO
Auto-generated method stub
button.setBackgroundResource(R.drawable.down);
}
});
drawer.setOnDrawerCloseListener(new
OnDrawerCloseListener() {
@Override
public
void
onDrawerClosed() {
//
TODO
Auto-generated method stub
button.setBackgroundResource(R.drawable.up);
}
});
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
//
Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main,
menu);
return
true;
}
}
Screen
Shot: