我已经成功实现了滚动工具栏隐藏/显示,但我被困在 onTouch 隐藏/显示工具栏。我研究了许多相关问题,但对我没有任何帮助。我希望我的工具栏在用户触摸屏幕时隐藏并在屏幕再次触摸时再次显示,请帮助
I am using Android Studio
下面是我的 OnScrollListener java 类
this.mrecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
int mLastFirstVisibleItem = 0;
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
final int currentFirstVisibleItem = layout.findFirstVisibleItemPosition();
if (currentFirstVisibleItem > this.mLastFirstVisibleItem) {
HomePage.this.getSupportActionBar().hide();
} else if (currentFirstVisibleItem < this.mLastFirstVisibleItem) {
HomePage.this.getSupportActionBar().show();
}
this.mLastFirstVisibleItem = currentFirstVisibleItem;
}
});
已更新
mrecyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
ActionBar actionBar = getSupportActionBar();
if(actionBar.isShowing()) {
actionBar.hide();
} else
actionBar.show();
return false;
}
});
此代码有效,但现在的问题是每当我触摸屏幕时它显示工具栏并且当我拿起我的手指它隐藏自己,并且由于我正在使用 RecyclerView,因此滚动显示和隐藏变得越来越困难。请帮助使其稳定,这样如果我触摸一次它会保持显示状态,而在再次触摸时它会隐藏自己。
最佳答案
给你。这应该有效:)
layout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (actionBar.isShowing()) {
actionBar.hide();
} else {
actionBar.show();
}
return true;
} else return false;
}
});
关于java - 在屏幕上的任何地方触摸时隐藏和显示工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45076100/