我在我的应用程序中使用DrawerLayout
。现在,当我按下后退按钮首先关闭DrawerLayout
并需要再次点击后退按钮时,它将重定向到前一个屏幕。如何在Android中的活动中使用DrawerLayout时处理后退按钮?
但我想避免这DrawerLayout
关闭后退按钮。任何人都可以知道如何防止这一点?
请给我建议,我坚持这一点。
在此先感谢。
我在我的应用程序中使用DrawerLayout
。现在,当我按下后退按钮首先关闭DrawerLayout
并需要再次点击后退按钮时,它将重定向到前一个屏幕。如何在Android中的活动中使用DrawerLayout时处理后退按钮?
但我想避免这DrawerLayout
关闭后退按钮。任何人都可以知道如何防止这一点?
请给我建议,我坚持这一点。
在此先感谢。
尝试一下本作幻灯片活动u能easyle处理返回键 : https://github.com/jfeinstein10/SlidingMenu
使用面漆()函数的返回按钮
我使用DrawerLayout,为此我需要使用Fragment,我想处理DrawerLayout不活动。当我按下Back按钮时,第二次调用OnBackPressed。在此之前,当我预先设置Back按钮时,抽屉会关闭。想做 – anddev
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);
}
}
只是要抽屉非可聚焦,它不会再截获后退按钮:
mDrawerLayout.setFocusable(false);
使用
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
或者干脆keydown事件调用super.onBackPressed()。
它的默认功能,那么为什么你需要重写? – Raghunandan
由于我的应用需求。 :( – anddev