近期项目中又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
}
}
}
}
做个记录,有帮助的话,点个赞意思一下呗