EditText 属性 (新手小白总结)

本文详细介绍了Android中EditText控件的各种属性设置方法,包括文本输入限制、字符间距、行间距、文字缩放、背景移除、字体样式、焦点控制、光标设置、文本长按选中样式、输入类型及键盘行为控制等。通过这些设置,开发者可以精确地控制EditText的外观和行为。
android:digits="" // 限定输入文本
android:letterSpacing="" // 设置字符间距, 默认0
android:lineSpacingMultiplier="2" // 设置行间距比例, 默认1
android:lineSpacingExtra="15dp"  //设置额外行间距,默认0dp
android:textScaleX="2" // 文字横向缩放比,默认1
android:scaleX="2"  // 控件View沿X轴拉伸
android:scaleY="8" // 控件View沿Y轴拉伸
android:background="@null" // 去除EditText底部背景线

粗体设置

android:textStyle=”bold” // xml中设置方式
editView.getPaint().setFakeBoldText(true); // 代码设置方式

字体设置

// noraml (普通字体,系统默认使用的字体)
// sans(非衬线字体,与noraml样式相同)
// serif 衬线字体,字体含
// monospace (等宽字体)
android:typeface="monospace" // 设置字型

焦点控制

不让EditText默认就会自动获取焦点, 需要在EditText的 “父级” 控件中添加这两个属性

android:focusable="true"   
android:focusableInTouchMode="true"

光标设置

android:cursorVisible="true"  //光标设置可见
android:textCursorDrawable="@drawable/color_cursor" // 光标样式设置

drawable/color_cursor 文件代码如下(图片、矢量图均可):

<?xml version="1.0" encoding="UTF-8"?>
<shape
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
   <!-- 填充的颜色 -->
   <solid android:color="@color/colorE7453C" />

<!-- 特别注意:必须明确标明size属性中的宽度,否则光标不可见 -->
   <size
       android:width="@dimen/width_theme_margin_2"/>
</shape>

光标定位设置

CharSequence text = editText.getText();
if (text instanceof Spannable) {
    Spannable spanText = (Spannable)text;
    Selection.setSelection(spanText, text.length()); // 方式一
    // editText.setSelection(text.length());  // 方式二
    editText.requestFocus();  // 显示光标
}

文本长按选中样式设置

android:textSelectHandleLeft  // 左边指示器资源文件
android:textSelectHandleRight // 右边指示器资源文件
android:textSelectHandle // 垂直指示器资源文件
android:textColorHighlight // 文本选中高亮颜色

输入类型及键盘行为控制 android:inputType:

“text” 普通文本键盘
“textEmailAddress” 带有@字符的普通文本键盘
“textUri” 带有/字符的普通文本键盘.
“number” 基本数字键盘.
“phone” 电话样式键盘.
“datetime” 时间日期.
“date” 日期.
“textCapSentences” 普通的文本键盘,大写每个新句子的第一个字母.
“textCapWords” 大写每个单词的正常文本键盘.适合标题或人名.
“textAutoCorrect” 正常文本键盘,可纠正拼写错误的字词.
“textPassword” 这个就和设置password="true"是一样的效果.以原点的形式显示输入的文本.
“textMultiLine” 普通文本键盘,允许用户输入包含换行符的长字符串(回车符)

android:imeOptions 与inputType配合 能够设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号,imeOptions可接受的参数及对应大致效果如下:

在这里插入图片描述

注意: 这里需要注意的是,如果想让键盘显示Action,需要inputType和imeOptions结合使用才可以,只使用imeOptions是不会有效果的.只会显示默认的换行action.(不同手机的输入法不一样,可能显示的会有差别)

监听键盘action响应事件

EditText editText = (EditText) findViewById(R.id.search);
  editText.setOnEditorActionListener(new OnEditorActionListener() { 
  @Override 
  public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
      boolean handled = false;
      if (actionId == EditorInfo.IME_ACTION_SEND) {  //点击的按键判断
          Toast.makeText(this, "点击actionSearch ", Toast.LENGTH_SHORT).show(); 
          handled = true;
      } 
      return handled;
  } 
});

软键盘的调起、关闭

1.EditTex有焦点(focusable为true)阻止输入法弹出

 editText.setOnTouchListener(new OnTouchListener(){

     public boolean onTouch(View view,MotionEvent event){
           editText.setInputType(Input.TYPE_NULL);//关闭软键盘
           return false;
 }});

EditText无焦点(focusable=false)时阻挡输入法弹出

 InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
 imm.hideSoftInputFromWindow(editText.getWindowToken(),0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值