所以,我在Android中有一个活动,在操作栏上有一个附加按钮。
单击按钮时,会出现两个浮动操作按钮(一个用于图像,一个用于相机)。当我再次点击按钮时,它们会消失。
现在,我想这样做,如果用户点击屏幕上不是这两个FAB之一的任何地方,它们就会消失。我已经有了使它们消失的动作/命令;但是,我正在寻找如何为整个屏幕设置onClickListener,除了两个FAB覆盖的区域。
答案 0 :(得分:0)
我解决了相同的情况,你可以将它与我的情景进行比较,并且可以适用于你的情况:
我的场景:在接触EditText的任何地方触摸屏幕时隐藏键盘。
解决方案:为非文本框视图设置触摸侦听器以隐藏键盘。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
setupUI(findViewById(R.id.scrolview)); // === scrolview is container of all views inside it ===
}
public void setupUI(View view) {
//Set up touch listener for non-text box views to hide keyboard.
if(!(view instanceof EditText)) {
view.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
hideSoftKeyboard(SignupActivity.this);
findViewById( R.id.first_linear_layout ).requestFocus();
return false;
}
});
}
//If a layout container, iterate over children and seed recursion.
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
View innerView = ((ViewGroup) view).getChildAt(i);
setupUI(innerView);
}
}
}
public static void hideSoftKeyboard(Activity activity) {
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}