因为自定义View 有正向和反向两个状态,所以需要在初始化时区分加载哪个layout
在Android中,要在自定义View中增加属性,你需要完成以下步骤:
-
在res/values/attrs.xml文件中定义属性。
-
在自定义View的构造函数中获取这些属性。
-
在布局文件中使用这些属性。
attrs.xml:文章来源:https://www.toymoban.com/news/detail-857731.html
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="SeriseViewState">
<attr name="overturn" format="string" />
</declare-styleable>
</resources>
自定义VIEW 中获取属性文章来源地址https://www.toymoban.com/news/detail-857731.html
constructor(context: Context) : super(context) {
init(context, null)
}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
init(context, attrs)
}
private fun init(context: Context, attrs: AttributeSet?) {
// 正向view
var layout = R.layout.item_aaa
if (attrs != null) {
val a: TypedArray = context.obtainStyledAttributes(attrs,R.styleable.SeriseViewState)
val text = a?.getString(R.styleable.SeriseViewState_overturn)
if (!TextUtils.isEmpty(text) && text.equals("1")) {
// 设置反向
layout = R.layout.item_bbb
}
}
val view: View = LayoutInflater.from(context).inflate(layout, this)
}
到了这里,关于Android 自定义view 中增加属性,初始化时读取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!