1

I want to have a slider that is open when the app starts. It will be open with buttons and such and when the user closes it, there will be more buttons to access. Is this possible with a sliding drawer? What would I add to the onCreate() method?

Thanks

mkyong
  • 12,497
  • 12
  • 37
  • 56

2 Answers2

4

XML Layout - In a basic LinearLayout:

  <SlidingDrawer
    android:id="@+id/slide"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:content="@+id/content"
    android:handle="@+id/handle"
    android:orientation="vertical"
    android:scrollbars="vertical" >

    <LinearLayout
        android:id="@id/handle"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/btn"
        android:gravity="center"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/handleImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_tray_expand" />

        <Button
            android:id="@+id/handleButton"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="@drawable/btn"
            android:text="Up me" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/content"
        android:paddingTop="2dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#013E53"
        android:gravity="center"
        android:orientation="vertical" >
        <TextView
            android:id="@+id/tv_commentDisplay"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:paddingLeft="10dp"
            android:textSize="20dp" />
    </LinearLayout>
</SlidingDrawer>

And your Activity will looks like this:

public class Home extends Activity implements OnDrawerScrollListener
{

private ImageView               handleImage;
private Button                  handleButton;
private SlidingDrawer           slide;
    private TextView                tv_commentDisplay;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);

            tv_commentDisplay = (TextView)this.findViewById(R.id.tv_commentDisplay);
    handleImage = (ImageView)this.findViewById(R.id.handleImage);
    handleButton = (Button)this.findViewById(R.id.handleButton);
    slide = (SlidingDrawer)this.findViewById(R.id.slide);

    slide.open(); // not sure
    slide.setOnDrawerScrollListener(this);

    handleButton = ((Button)this.findViewById(R.id.handleButton));

    tv_commentDisplay.setText("Hello World");
}

@Override
public void onScrollEnded() {
}

@Override
public void onScrollStarted() {
    if (slide.isOpened())
        handleImage.setImageResource(R.drawable.ic_tray_collapse);
    else {
        handleImage.setImageResource(R.drawable.ic_tray_expand);
    }
}
damson
  • 2,635
  • 3
  • 21
  • 29
1

Use open() in your onCreate(), it will open the drawer immediately.

You can take a look at the full API here

Rotemmiz
  • 7,933
  • 3
  • 36
  • 36