EditText(第1章)-游标位置和样式

1. EditText是什么?


既然是EditText的第一篇,当然应该明白EditText是干嘛的,了解一个控件说明,最好的方法就是先看看源码的注释:

EditText的设计初衷:

This is supposed to be a *very* thin veneer over TextView.Do not make any changes here that do anything that a TextView with a key listener and a movement method wouldn't do!

译:它应该是在TextView的外观上做了一些特别细小的改动,不能改变任何TextView的关键监听和移动的方法。

EditText的说明:

EditText is a thin veneer over TextView that configures itself to be editable.

译:EditText是在TextView的外观配置上做了一些细小的改动,使其可以编辑。

也可以这么说,EditText就是一个可以编辑的TextView。

总结:EditText是一个可编辑的文本控件。


2.EditText的游标


上面说了EditText是在Text的基础上做了一些细小的改动,那么我们看看改动了什么:

下面是一个简单的布局:

       android:layout_width="match_parent"

       android:layout_height="wrap_content"

       android:hint="随便输"/>

特别说明:这里的AppCompatEditText是5.0以后为了兼容低版本,统一样式(文字颜色,小大等等)而出现的,当然AppCompatEdit是继承于EditText的,所以使用的方式是一样的,推荐使用。

效果图:


EditText(第1章)-游标位置和样式_第1张图片
EditText的样式

可以明显的看出,有个一闪一闪的竖线-它就是游标了。我们知道只有在用户点击了输入框的时候,游标才会出现。那么为什么我们一进来就可以看到这种效果呢?下面看看源码的style:


EditText(第1章)-游标位置和样式_第2张图片
Edit的Style

看了这个我们明白了:EditText会自动获取焦点,有焦点的时候游标才会闪烁

前面几个属性相信大家都可看懂,最后2个属性是在API Level 23(6.0的手机)才能使用的,不是很了解。


3.改变游标的颜色


上面的展示图的项目是Android studio工程,细心的你一定会发现主题Theme中的colorAccent属性的颜色正是我们看到的EditText的游标颜色。改改看看:

#000000//改为黑色比较明显

效果:

EditText(第1章)-游标位置和样式_第3张图片
改变游标的颜色

颜色是改变了,可是我只想该游标应该怎么办呢?

我们去xml找找方法,输入一个cursor看看有什么相关属性,找到这样一个方法:

android:textCursorDrawable="@mipmap/ic_launcher"

这里我们设置一个机器人的图片看看效果:


EditText(第1章)-游标位置和样式_第4张图片
改变游标的样式

虽然实现了效果不过也是太丑了点,既然是传入一个图片,那么我们就可以使用Shape图片了


EditText(第1章)-游标位置和样式_第5张图片
简单的Drawable文件

效果:


EditText(第1章)-游标位置和样式_第6张图片
改变游标的颜色

这个效果还是可以的,相信到了这里,你已经可以修改游标的样式和颜色了。

特别说明:

设置游标的颜色和hint文字提示的颜色一致:

android:textCursorDrawable="@null"

如果你对EditText的样式还是不满意:

设置背景(这里就不演示了):

android:background=""//你可以随心所欲的改


4.改变游标的位置

有时候我们在项目会有这样的需求:进入页面的时候默认给予了文字不需要用户重复输入,只需要在后面补充即可,比如输入网址的时候


需求图片

因为默认的游标位置是在左侧,这时候我们就需要调整游标的位置了。

设置光标在右侧:

方法1:

etUrl.setSelection(etUrl.getText().length());

方法2:(就是方法1的底层方法)

Editable etext = etUrl.getText();

Selection.setSelection(etext, etext.length());



5.总结

通过这个文章我们可以知道

1.游标的样式和颜色以及位置如何修改

这是EditText系列的第一篇之后会慢慢总结有关EditText的知识。如果有相关知识,欢迎大家简信分享给我,多谢。

第二章:EditText(第2章)-对hint进行整容

你可能感兴趣的:(EditText(第1章)-游标位置和样式)