Search code examples
androidslidingdrawer

Sliding drawer Android does not open


I have implemented a drawer in android that when open show 4 buttons, but when I try to click it, this never actually happens (the drawer does not open). However, the image resource of the component ImageView handler is changed when i click on drawer.

I have the following XML code:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/dynamicCategories"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/background"
        android:orientation="vertical" >

        <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:layout_weight="0.1"
        android:orientation="horizontal" >
             .
             .
             .

        </LinearLayout>

            <LinearLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/LinearLayout01"
                android:layout_width="fill_parent"
                android:layout_height="42dp"
                android:layout_weight="0.1"
                android:gravity="bottom"
                android:orientation="vertical" >

                <SlidingDrawer
                    android:id="@+id/slidingDrawer1"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@drawable/bar"
                    android:content="@+id/contentLayout"
                    android:handle="@+id/handle" >

                    <ImageView
                        android:id="@+id/handle"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_weight="1" />

                    <LinearLayout
                        android:id="@+id/contentLayout"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="@color/white" >

                        <Button
                            android:id="@+id/button1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:text="Button" />

                        <Button
                            android:id="@+id/button2"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:text="Button" />

                        <Button
                            android:id="@+id/button3"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:text="Button" />

                        <Button
                            android:id="@+id/button4"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:text="Button" />
                    </LinearLayout>
                </SlidingDrawer>

            </LinearLayout>

And the java code:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(com.android.layout.R.layout.channelprogrammation);

    drawer = (SlidingDrawer) findViewById(com.android.layout.R.id.slidingDrawer1);
        // Drawer Programmation
    drawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {
        public void onDrawerOpened() {
            ImageView view = (ImageView) drawer.getHandle();
            // change to bar selected   
               view.setImageResource(com.android.layout.R.drawable.ic_launcher);
            Toast.makeText(getApplicationContext(), "Is open!", 3000)
                    .show();
            drawer.open();
        }
    });
    drawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {

        public void onDrawerClosed() {
            Toast.makeText(getApplicationContext(), "Closed", 3000).show();
            ImageView view = (ImageView) drawer.getHandle();
            view.setImageResource(0);
            drawer.close();
        }
    });

Solution

  • I found the problem... I had my linear layout that has the sliding drawer with 42dp. Therefore when trying to use the sliding drawer the linear layout opened but did not have enough space to expand.