Android 自定义Edittext 和TextView 提示文字和填入内容不同的粗细组件
近期项目中又EditText 以及TextView 这两个组件需要用到提示文字 以及 填入文字要保持不同的粗细程度,所以记录一下
首先 是EditText 组件的自定义
BLEditText 继承的这个组件是一个三方的组件,可以在很大程度上减少drawable的编写,有兴趣的可以去相关的Git去看一下 点击查看,也可以直接继承Edittext,使用的时候直接调用即可
class AutoBoldEditText : BLEditText {
constructor(context: Context?) : super(context) {
init()
}
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {
init()
}
constructor(context: Context?, attrs: AttributeSet?, defstyleAttr: Int) : super(
context,
attrs,
defstyleAttr
) {
init()
}
private fun init() {
//动态设置内容的粗细
addTextChangedListener {
typeface = if (it.toString().isEmpty()) {
Typeface.DEFAULT
} else {
Typeface.DEFAULT_BOLD
}
}
}
}
下面是TextView的组件
同理,继承也可以直接继承TextView
class AutoBoldTextView(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) :
BLTextView(context, attrs, defStyleAttr) {
init {
addTextChangedListener {
if (it.toString().isEmpty()){
typeface = Typeface.DEFAULT
}else {
typeface = Typeface.DEFAULT_BOLD
}
}
}
}
做个记录,有帮助的话,点个赞意思一下呗
原文地址:https://blog.csdn.net/weixin_43603192/article/details/140325705
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!