我在我的应用程序中使用DrawerLayout
。现在,当我首先按下后退按钮时,它正在关闭DrawerLayout
并需要再次单击后退按钮,然后它将重定向到上一个屏幕。
但我想避免这个DrawerLayout
关闭后退按钮。任何人都知道如何防止这种情况吗?
请告诉我我被困在这个方面。
提前致谢。
答案 0 :(得分:5)
DrawerLayout
拦截默认onKeyDown
和onKeyUp
,因此只需创建从DrawerLayout
扩展的新类并覆盖此方法
类似的东西:
import android.content.Context;
import android.support.v4.widget.DrawerLayout;
import android.util.AttributeSet;
import android.view.KeyEvent;
public class MyDrawerLayout extends DrawerLayout {
public MyDrawerLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyDrawerLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyDrawerLayout(Context context) {
super(context);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return false;
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return false;
}
return super.onKeyDown(keyCode, event);
}
}
答案 1 :(得分:3)
只需使抽屉不可聚焦,它就不会再拦截后退按钮了:
mDrawerLayout.setFocusable(false);
答案 2 :(得分:0)
试试幻灯片活动你可以轻松处理后退键 : https://github.com/jfeinstein10/SlidingMenu
答案 3 :(得分:0)
使用
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
或者只是在keydown事件中调用super.onBackPressed()。
答案 4 :(得分:-2)
单击后退按钮
时使用finish()功能