为了账号安全,请及时绑定邮箱和手机立即绑定

Kotlin中自定义Android控件

标签:
Android

1.在开发Android项目的时候,自定义控件是必不可少的,本手记利用Kotlin语言实现一个类似设置条目的简单的控件

图片描述

2.创建Kotlin类 继承FrameLayout

class SettingItemView @JvmOverloads constructor(
        context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : FrameLayout(context, attrs, defStyleAttr)

3.在初始化代码中

    init {
        val typedArray = context.obtainStyledAttributes(attrs, R.styleable.SettingItemView)}

这个地方的处理方式和使用java写法是一样的
我们需要在文件中定义出自定义的属性

 <declare-styleable name="SettingItemView">
        <!--标题-->
        <attr name="itemName" format="string" />
        <!--是否显示最右侧的箭头-->
        <attr name="isShowMoreImage" format="boolean" />
        <!--右侧的对应的值的显示-->
        <attr name="itemValue" format="string" />
        <attr name="itemValueColor" format="color" />
    </declare-styleable>

这里就简单的定义下一些基本的常用的

在init方法中,记得调用

   initView()
        typedArray.recycle()

在initView的方法中

    private fun initView() {
        View.inflate(context, R.layout.layout_setting_item, this)

        mItemValue.visibility = if (isShowMoreImage) View.VISIBLE else View.GONE
        itemName?.let {
            mItemName.text = it
        }
        itemValue?.let {
            mItemValue.text = it
            mItemValue.visibility = View.VISIBLE
        }

        if (itemValueColor!=0){
            //设置颜色
            mItemValue.setTextColor(itemValueColor)

        }
    }

设置控件上的一些初始化的信息

提供一些方法,可以在代码中直接调用

    /*
    因为后面的值会变化,所以提供一个方法
     */
    fun setItemValue(title:String){
        mItemValue.text=title

    }

接下来 我们试试用下

     <com.niu1078.weights.SettingItemView
                android:id="@+id/mSettingItem"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:itemValue="未设置"
                app:isShowMoreImage="true"
                app:itemName="个人账户"
                />
点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消