EditText单行、多行和自动换行显示内容以及只输入数字和小数点

1548人阅读 评论(0) 收藏 举报
分类:

先说说TextView的单行、多行的应用场景:

1) TextView默认是多行显示的,并且能够自动换行。不过自动换行时对中文处理的不是很好,很容易在控件边框附近出现空白间隙。要想处理这种情况只能够去自定义TextView了,具体可查看Android自定义view-文本自动换行。不过这种方式并不是很好,建议使用自带的StaticLayout类来对内容进行显示处理。

2) TextView被用来显示标题等类似内容时需要单行显示。只要设置android:singleLine=”true” 即可。此时也可以设置跑马灯效果,具体查看[Android教程]TextView属性android:ellipsize实现跑马灯效果

现在来说说EditText,它默认也是多行显示和自动换行的,单行设置跟TextView是相同的。由于设备屏幕大小限制,大部分情况EditText都需要单行显示。

相关代码:


       android:id="@+id/etTest" android:singleLine="true"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

 

 

默认的edittext是不会自动换行的,那么我们只好去代码中寻求解决之道

 

EditText editText = new EditText(this);  

//设置EditText的显示方式为多行文本输入  

editText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);  

//文本显示的位置在EditText的最上方  

editText.setGravity(Gravity.TOP);  

editText.setText("哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈");  

//改变默认的单行模式  

editText.setSingleLine(false);  

//水平滚动设置为False  

editText.setHorizontallyScrolling(false);  


EditText可以设置多种输入方式,其中若要设置输入数字和小数点时应注意一下几点:

1.如果设置只输入数字

edittext.setInputType( InputType.TYPE_CLASS_NUMBER);

此时只会弹出数字输入框,符号点击后不会输入到文字框中

2.只能输入数字和小数点

edittext.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

此时注意:只设置InputType.TYPE_NUMBER_FLAG_DECIMAL是无法实现只能输入数字和小数点的,必须InputType.TYPE_CLASS_NUMBER 和 

InputType.TYPE_NUMBER_FLAG_DECIMAL同时设置才可以


查看评论

editText限制输入的4种方法

XML布局文件限制:
  • zhoujn90
  • zhoujn90
  • 2015-04-10 19:43:15
  • 4886

EditText单行显示

结论: 要控制EditText单行显示需要同时设置android:singleLine="true"和android:maxLines="1"; 问题源: 今天遇到一个bug,应用中使用了Edi...
  • kanglupeng
  • kanglupeng
  • 2017-01-17 14:40:59
  • 7608

Android EditText设置为单行

在EditText设置单行,由于android:single属性显示过时,提示用使用android:maxLines=”1”代替,但是设置之后没有任何效果。这是由于android:inputType属...
  • vaechr
  • vaechr
  • 2017-12-28 17:59:23
  • 620

Android之EditText 属性汇总

android:layout_gravity="center_vertical" 设置控件显示的位置:默认top,这里居中显示,还有bottom android:hint="请输入数字!" 设置...
  • beifengdelei
  • beifengdelei
  • 2011-12-30 14:38:34
  • 25596

关于如何限制EditText输入的文本行数为1

今天在学习Android开发,尝试做一个登录系统。一般常见的登录界面,用户名和密码这两栏的输入是决不允许换行的,而我们使用edittext来获取用户名和密码时,控件是默认可以换行的,所以我尝试解决这一...
  • hulaigang
  • hulaigang
  • 2017-10-25 15:12:48
  • 571

王立平--EditText实现单行显示,左侧图标,提示信息

android:layout_width="200dp"           android:layout_height="50dp"           android:hint="请输入账号"...
  • u013425527
  • u013425527
  • 2014-10-16 11:23:47
  • 3441

textview 单行显示且最多一行显示字数其余用省略号代替

android:singleLine="true"               android:maxEms="8"             android:ellipsize="end"...
  • zjx2014430
  • zjx2014430
  • 2014-05-29 14:48:22
  • 2775

EditText自动换行的问题

总是无法自行换行,网上最多的说法是要设置EditText的属性: android:singleLine="false" android:scrollHorizontally="false" 实际根...
  • eclothy
  • eclothy
  • 2015-03-07 14:25:45
  • 8292

android EditText 自动换行 设置

项目当中有提交评论和反馈的功能 用的是EditText做为文本编辑器,但是默认的EditText当你输入的内容过多超出屏幕一行 EditText也不会自动换行的,下面给出一个简单的解决办法 ...
  • csdndouniwan
  • csdndouniwan
  • 2017-01-04 08:33:37
  • 6398

Android EditText 为什么不能自动换行

写了一个布局文件
  • QGlaunch
  • QGlaunch
  • 2014-11-24 10:25:44
  • 3106
    个人资料
    等级:
    访问量: 4826
    积分: 177
    排名: 103万+