gpt4 book ai didi

android - 操作栏被隐藏,之后立即显示

转载 作者:搜寻专家 更新时间:2023-11-01 07:54:28 25 4
gpt4 key购买 nike

我试图在用户点击 Activity 时切换显示/隐藏操作栏,所以我在 Activity 中实现了这样的功能:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
Log.d("ACTION BAR", "triggered");

super.dispatchTouchEvent(ev);

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

if (actionBar.isShowing()) {
actionBar.hide();
} else {
actionBar.show();
}

return true;
}

但是,问题是当点击 Activity 时,操作栏被隐藏,但随后立即再次显示。我添加了日志记录,这个方法似乎被触发了两次,为什么?

最佳答案

我认为 dispatchTouchEvent 可能会在触地和向上 Action 时被调用两次,所以在显示操作栏之前取一个 bool 标志并检查这个标志值:

private boolean isManuallyHideShownActionBar;

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
super.dispatchTouchEvent(ev);

ActionBar actionBar = getSupportActionBar();

if(!isManuallyHideShownActionBar){
if (actionBar.isShowing()) {
actionBar.hide();
} else {
actionBar.show();
}
isManuallyHideShownActionBar = true;
}else{
isManuallyHideShownActionBar = false;
}

return true;
}

关于android - 操作栏被隐藏,之后立即显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30117177/

25 4 0