gpt4 book ai didi

java - 如何在android中为除屏幕上的元素之外的任何地方设置onClickListener

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:46 24 4
gpt4 key购买 nike

所以,我在 android 中有一个 Activity ,在操作栏上有一个附加按钮。

当我单击该按钮时,会出现两个 float 操作按钮(一个用于图像,一个用于相机)。当我再次单击该按钮时,它们消失了。

现在,我想要做到这一点:如果用户单击屏幕上不是这两个 FAB 之一的任意位置,它们就会消失。我已经有了让它们消失的 Action /命令;但是,我正在寻找如何为整个屏幕设置 onClickListener,除了两个 FAB 覆盖的区域。

最佳答案

我解决了相同的场景,您可以将其与我的场景进行比较,并可以应用于您的场景:

我的场景:在屏幕触摸上任何接受 EditText 的地方隐藏键盘。

解决方案:为非文本框 View 设置触摸监听器以隐藏键盘。

@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);
}

关于java - 如何在android中为除屏幕上的元素之外的任何地方设置onClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43308895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com