按下后退按钮上的滑动抽屉关闭

时间:2014-03-25 16:22:58

标签: android slidingdrawer

我的应用程序中有一个滑动抽屉。

当我点击android:handle时,它会打开,我已将其提供给图像视图。

我想在按下后退按钮时关闭抽屉。

代码:

SlidingDrawer slider;

@Override
public void onBackPressed() { 
    slider.close ();
}           
super.onBackPressed();

主。 Xml文件

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >


<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="right"
    android:orientation="vertical" >

<SlidingDrawer
android:id="@+id/slider"
android:layout_width="150dp"
android:layout_marginRight="0dp"
android:layout_height="match_parent"
android:handle="@+id/handle"
android:content="@+id/content"

android:orientation="horizontal"
>
<ImageView
    android:id="@+id/handle"
    android:background="@drawable/up"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:gravity="center"
    />
<GridView
    android:id="@+id/content"
    android:background="@color/black"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
</SlidingDrawer>
</LinearLayout>
</RelativeLayout>    

活动文件

@Override
public void onCreate(Bundle savedInstanceState)
{
    SlidingDrawer slide = (SlidingDrawer)this.findViewById(R.id.slider);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}


@Override public void onBackPressed() { 
if(slide.isOpened()){ 
slide.close ();
}
else{
    super.onBackPressed(); 
    }

}

}

2 个答案:

答案 0 :(得分:3)

如果它实际打开,你只需关闭它:

SlidingDrawer slider;

@Override
public void onBackPressed() { 
    if (slider.isOpened()) {
        slider.close ();
    } else {           
        super.onBackPressed();
    }
}

修改

您的slider字段超出了scope。您需要将其声明为类字段,以便所有非静态方法都可以访问它。另请参阅this document

答案 1 :(得分:0)

你不能在in-pressed方法中调用super方法,你只需要这个...

@Override
public void onBackPressed() { 
     slider.close ();
}  

不要在后面按

中调用超级方法
相关问题