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