gpt4 book ai didi

android - 在自定义 View 中处理后退按钮

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:30 25 4
gpt4 key购买 nike

在带有 DrawerLayout 的 Android 文字游戏中,左右抽屉导航通过 MainActivity 中的以下代码关闭:

@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerOpen(mLeftDrawer)) {
mDrawerLayout.closeDrawer(mLeftDrawer);
} else if (mDrawerLayout.isDrawerOpen(mRightDrawer)) {
mDrawerLayout.closeDrawer(mRightDrawer);
} else {
super.onBackPressed();
}
}

这很好用(左边的截图)-

app screenshot

不过,我还尝试通过以下方法检测后退按钮是否按下我的自定义 View (它覆盖了onDraw 方法来绘制可滚动的游戏板和字母图 block )- (允许应用程序用户取消图 block 交换或从游戏板上召回未播放的图 block )-但它们都不是调用:

@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
if (mSwapping && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
cancelSwapLetters();
return true;
}

return super.dispatchKeyEventPreIme(event);
}

@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (mSwapping && keyCode == KeyEvent.KEYCODE_BACK) {
cancelSwapLetters();
return true;
}

return super.onKeyPreIme(keyCode, event);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mSwapping && keyCode == KeyEvent.KEYCODE_BACK) {
cancelSwapLetters();
return true;
}

return super.onKeyDown(keyCode, event);
}

我已经在上面的方法中设置了断点,但是没有一个被命中。

请告诉我,如何解决这个问题。

最佳答案

这段代码帮助我在 fragment 中找回了新闻事件试试这段代码:

getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {

if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {

if(you handled back press) return true;
else return false;
}
});

关于android - 在自定义 View 中处理后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33506693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com