当前位置: 首页 > news >正文

Android中EditText同时支持textMultiLine与imeOptions(action/actionSend/...)

Android中EditText同时支持textMultiLine与imeOptions(action/actionSend/...)

在Android中,如果想要imeOptions起作用,则要求android:singleLine="true"或者android:inputType="text",此时不能多行显示内容,即使插入\n,内容也是显示在一行。形如:

<EditTextandroid:id="@+id/et_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:imeOptions="actionSend"android:inputType="text"android:singleLine="true" />

而想要多行文字,则可以不设置android:singleLine或者android:inputType,又或者android:inputType="textMultiLine"等等,但是此时android:imeOptions设置的值却不起作用了。形如:

<EditTextandroid:id="@+id/et_multi"android:layout_width="match_parent"android:layout_height="wrap_content"android:imeOptions="actionSend"android:inputType="textMultiLine"android:maxLines="1"android:singleLine="false" />

1.在java代码里面直接设置

如果想要在imeOptions起作用的时候同时支持显示多行文本(当然此刻不能使用ENTER实现换行功能了),需要在XML代码里面不设置相关代码,并在JAVA代码里面这样设置:

etText.setImeOptions(EditorInfo.IME_ACTION_SEND);
etText.setRawInputType(InputType.TYPE_CLASS_TEXT);
//or
etNone.setImeOptions(EditorInfo.IME_ACTION_SEND);
etNone.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);

2.或者自定义一个EditText类,实现onCreateInputConnection方法:

package com.example.test;import android.content.Context;
import android.util.AttributeSet;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.widget.EditText;public class ActionEditText extends EditText {public ActionEditText(Context context) {super(context);}public ActionEditText(Context context, AttributeSet attrs) {super(context, attrs);}public ActionEditText(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overridepublic InputConnection onCreateInputConnection(EditorInfo outAttrs) {InputConnection ic = super.onCreateInputConnection(outAttrs);outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;return ic;}
}

然后在XML代码里面这样使用:

<com.example.test.ActionEditTextandroid:id="@+id/et_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:imeOptions="actionSend"/>

参考链接https://exchangetuts.com/multi-line-edittext-with-done-action-button-1639497243952289

http://www.gsyq.cn/news/54529.html

相关文章:

  • 空间变换层和自注意力机制
  • MacX Video Converter Pro for Mac v6.8.2 安装视频转换器安装步骤(附安装包)
  • 深入解析:Kotlin 高阶函数在回调设计中的最佳实践
  • 信息化、数字化、智能化、智慧化、数智化,到底啥区别 - 智慧园区
  • 洛谷 B4413:[GESP202509 三级] 数组清零
  • 中大型超市智能运营导购系统:AI 精准推送,滞销品库存加速 19%!
  • linux ftp shell
  • 全国计算机等级考试——二级JAVA完整大题题库【五十三道】
  • 【C + +】unordered_set 和 unordered_map 的用法、区别、性能全解析 - 实践
  • Spring Boot迅速集成MiniMax、CosyVoice实现文本转语音
  • 完整教程:微信生态新机遇:视频号推客模式助力商家突围
  • win10/win11系统默认应用或文件打开方式重启后被自动重置的解决办法
  • 2025 上海办公室 商铺装修核心服务商 TOP5 解析报告:双场景适配能力与品质选型全景指南
  • 2025CCPC济南站游记
  • PQ v.Next Alpha阶段发布
  • 三分稀疏图染色的多项式时间证明
  • 251119
  • CCF GESP 五级真题考频与知识点速查表
  • 爱玩机工具箱s22.1下载
  • 2025-11-19 早报新闻
  • 2025有限元分析/计算/测试服务商口碑榜:长春六耳科技领跑,技术深耕者成行业标杆
  • 详细介绍:Micro框架API文档离线访问:生成静态HTML文件
  • qml021-调试qml-无法连接到进程内(in-process)QML调试器
  • linux flash驱动
  • 2025年东营搬家公司服务力综合评估: 东营搬家公司电话/东营搬家搬厂/东营河口搬家/东营垦利搬家/专业能力与细分市场竞争力深度解析
  • 【19章】LLM开发工程师入行实战--从0到1开发轻量化私有大模型
  • 不只做语音,ElevenLabs 推出图像和视频生成平台;博通推出语音 AI 芯片,实现端侧 TTS 和实时翻译丨日报
  • 海外直播源码选型指南:技术架构与合规性细节解析及成品多语言直播APP源码交付
  • 2025 最新雕刻机源头厂家权威推荐榜:自主研发专利加持 + 国际测评认证,高精度设备优选清单数控雕刻机/激光雕刻机/小型雕刻机/金属雕刻机公司推荐
  • wps如何快速交换列(调整列顺序),删除多个不连续的列