制御するコントローラとして、アプリをつかう場合、画面のすみから中央にむけて指を動かすなど、ジェスチャーが作動してしまう可能性がたかくて、するとアプリが切り替わってしまって、作業が大きく中断されてしまい、むっとなります。それを起こさないために、領域を無効にしたいとおもいました。
ひとつひとつのViewに対して指示をだして、動いているようにみえます。ひょっとしたら、Windowに対して処置する必要があるかもしれないので、調べてみてください。あと、あまりに広い範囲だと、指定できないみたいです。
@Override
public void onPause() {
setIgnoreGesture(false);
super.onPause();
}
public void onResume() {
super.onResume();
setIgnoreGesture(true);
}
public void setIgnoreGesture(boolean ignore) {
setIgnoreGesture(binding.seekBarBottom, ignore);
setIgnoreGesture(binding.seekBarRight, ignore);
setIgnoreGesture(binding.recyclerButtons, ignore);
}
public void setIgnoreGesture(View view, boolean ignore) {
ArrayList<Rect> set = new ArrayList<>();
if (ignore) {
int width = view.getWidth();
int height = view.getHeight();
Rect rect = new Rect(0, 0, width, height);
set.add(rect);
}
view.setSystemGestureExclusionRects(set);
}
広告を表示しています。

