首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在editText外单击时隐藏键盘?

在 EditText 外单击时隐藏键盘,可以通过设置 android:windowSoftInputModestateHidden 或者 stateAlwaysHidden 的方式来实现。另外,还可以使用一些额外的布局技巧和事件监听器来实现这个功能。

具体实现方式如下:

  1. AndroidManifest.xml 文件中设置 android:windowSoftInputMode 属性:
代码语言:xml
复制

<activity android:windowSoftInputMode="stateHidden" ... />

代码语言:txt
复制
  1. 在对应的布局文件中,将 EditText 放置在一个 LinearLayout 或者 RelativeLayout 中,并设置 android:layout_alignParentEnd 属性,同时将 Button 或者其他的视图放置在 EditText 的右边,并设置 android:layout_alignParentStart 属性,来让它们在键盘弹出时能够收起。
代码语言:xml
复制

<LinearLayout

代码语言:txt
复制
   android:layout_width="match_parent"
代码语言:txt
复制
   android:layout_height="wrap_content"
代码语言:txt
复制
   android:orientation="horizontal"
代码语言:txt
复制
   android:layout_alignParentEnd="true"
代码语言:txt
复制
   android:layout_alignParentStart="true">
代码语言:txt
复制
   <EditText android:layout_width="0dp"
代码语言:txt
复制
       android:layout_weight="1"
代码语言:txt
复制
       android:layout_height="wrap_content"
代码语言:txt
复制
       android:hint="Input text" />
代码语言:txt
复制
   <Button android:layout_width="wrap_content"
代码语言:txt
复制
       android:layout_height="wrap_content"
代码语言:txt
复制
       android:text="Submit" />

</LinearLayout>

代码语言:txt
复制
  1. 在 Activity 或者 Fragment 中,获取 EditText 和其他视图的引用,并注册一个点击事件监听器,在点击时收起键盘:
代码语言:java
复制

EditText editText = findViewById(R.id.edit_text);

Button button = findViewById(R.id.button);

// 注册点击事件监听器

editText.setOnClickListener(new View.OnClickListener() {

代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void onClick(View v) {
代码语言:txt
复制
       // 隐藏键盘
代码语言:txt
复制
       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
代码语言:txt
复制
       imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
代码语言:txt
复制
   }

});

button.setOnClickListener(new View.OnClickListener() {

代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void onClick(View v) {
代码语言:txt
复制
       // 隐藏键盘
代码语言:txt
复制
       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
代码语言:txt
复制
       imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
代码语言:txt
复制
   }

});

代码语言:txt
复制

这样一来,当你在 EditText 中输入文本时,单击其他区域就可以隐藏键盘了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券