这个视图原始框架地址:https://github.com/rengwuxian/MaterialEditText
指导手册:http://www.rengwuxian.com/post/materialedittext#content
接下来是我学习和总结的时候了:
1,没配置相关属性参数:
<com.yh.materialeditlibrary.MaterialEditText
android:id="@+id/basicEt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="Basic" />
效果:
设置为不可用状态:
enableBt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
basicEt.setEnabled(!basicEt.isEnabled());
enableBt.setText(basicEt.isEnabled() ? "DISABLE" : "ENABLE");
}
});
效果:
1 BaseColor
文档里面是这么说的:
Base Color 被用作背景线的颜色、主字体的颜色(透明度被重置为87%)和提示字体的颜色(透明度被重置为26%)。你可以使用app:baseColor
(xml) 或者 setBaseColor()
(java) 来指定 Base Color 。Base Color 的默认值为纯黑
修改为红色:
<com.yh.materialeditlibrary.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Custom Base Color"
app:baseColor="@color/red" />
效果:
2 Primary Color
自定义Primary Color
Primary Color 被用作激活状态的输入框背景色、高亮的Floating Label色和底部省略号的颜色。你可以使用 app:primaryColor
(xml) 或者 setPrimaryColor()
(java) 来指定 Primary Color。如果没有设置Primary Color,默认将使用 Base Color 来替代
也就是获取焦点状态时的底部颜色
默认颜色为红色,点击后显示为绿色的底.
<com.yh.materialeditlibrary.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Custom Primary Color"
app:baseColor="@color/red"
app:primaryColor="@color/green" />
没点击状态:
点击后:
3 Floating Label
Floating Label 有三种模式: none
, normal
, highlight
。 你可以使用 app:floatingLabel
(xml) 或者setFloatingLabel()
(java) 来设置 Floating Label 的模式
从效果中明显看出是在EditText上面显示的问题的高亮程度,none,压根不显示,normal 默认的亮度,hightlight 高亮显示
none:
xml:
<com.yh.materialeditlibrary.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Floating Label"
app:floatingLabel="none" />
<com.yh.materialeditlibrary.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Highlight Floating Label"
app:floatingLabel="normal" />
<com.yh.materialeditlibrary.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Highlight Floating Label"
app:floatingLabel="highlight" />
4 singleLineEllipsis
当设置显示底部省略号后,控件会在文字向左滚动时在底部左侧显示一个三个点的省略号,点击省略号将自动把光标置于字符串的开始处。你可以通过 app:singleLineEllipsis=true
(xml) 或者 setSingleLineEllipsis()
(java) 来设置它。这个属性将自动设置android:singleLine
为 true
首先这个控件在不选中是不显示...的,而且滑动到最左侧,...小时,滑向右侧,...出现
<com.yh.materialeditlibrary.MaterialEditText
android:id="@+id/singleLineEllipsisEt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Single Line Ellipsis"
android:text="soyoungboy is beautiful ,so cool ,so nice ,so smart"
app:singleLineEllipsis="true" />
效果:
5 maxCharacters
设置字符数限制后,控件右下角会显示已输入字符数和最大字符数的角标,并在超过限制后显示警告色(默认为红色)。 你可以通过app:maxCharacters
(xml) 或者 setMaxCharacters()
(java) 来设置字符数,通过 app:errorColor
或者 setErrorColor()
(java) 来自定义警告色
app:maxCharacters="10" 设置最长文字长度10个
没超过10个字:
当超过10个字时,效果如下:
6 自定义 error color
自定义警告颜色:
比如设置超过10个字时,颜色为绿色
<com.yh.materialeditlibrary.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorColor="@color/green"
app:maxCharacters="10" />