Rey*_*deh 7 keyboard android android-edittext
我想通过在edittext外面点击来隐藏键盘.这是我的xml代码:
<RelativeLayout
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:onClick="rl_main_onClick">
<RelativeLayout
//Here there are some widgets including some edittext.
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的java代码(MainActivity):
public void rl_main_onClick(View view) {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
Run Code Online (Sandbox Code Playgroud)
但我必须点击两次才能隐藏键盘.第一次点击只是改变"下一步"(对于最后一个编辑文本它是"完成")输入图标,然后第二次点击隐藏键盘.这是第一次点击时发生的事情:
现在我有两个问题:
1-如何只需轻按一下即可修复并隐藏键盘?
2-是否可以对我的所有edittext(一个代码)进行此操作?
提前致谢.
Mar*_*rat 11
试图取代onClick有onTouch.为此,您需要更改您的布局属性,如下所示:
<RelativeLayout
android:id="@+id/relativeLayout"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true">
<RelativeLayout>
// widgets here
</RelativeLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
然后删除rl_main_onClick(View view) {...}方法并在其中插入onTouch监听器方法onCreate():
findViewById(R.id.relativeLayout).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15340 次 |
| 最近记录: |