在屏幕上的任何地方触摸时隐藏和显示工具栏
Hide and Show Toolbar on touching anywhere on screen
我已经成功实现了滚动工具栏 Hide/Show 但我卡在了 onTouch Hide/Show 工具栏 。我研究了许多相关问题,但对我没有任何帮助。我希望我的工具栏在用户 触摸屏幕 时 隐藏 并且在屏幕 [=] 时再次 显示 21=]又感动了,求助
I am using Android Studio
下面是我的 OnScrollListener java class
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所以滚动变得越来越困难显示和隐藏。请帮助使其稳定,这样如果我触摸一次它保持显示状态,再触摸一次它就会隐藏自己。
将 onTouchListener 用于您的根布局。并在回调中编写代码。
给你。这应该有效:)
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;
}
});
我已经成功实现了滚动工具栏 Hide/Show 但我卡在了 onTouch Hide/Show 工具栏 。我研究了许多相关问题,但对我没有任何帮助。我希望我的工具栏在用户 触摸屏幕 时 隐藏 并且在屏幕 [=] 时再次 显示 21=]又感动了,求助
I am using Android Studio
下面是我的 OnScrollListener java class
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所以滚动变得越来越困难显示和隐藏。请帮助使其稳定,这样如果我触摸一次它保持显示状态,再触摸一次它就会隐藏自己。
将 onTouchListener 用于您的根布局。并在回调中编写代码。
给你。这应该有效:)
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;
}
});