kotlin幕后字段和幕后属性解析

blog.csdn.net/guohaiyang1…

自己应用的案例

此时用时都不需要判断是否是空,直接使用则就是非空。例:

fun showNetError(){
    showView(netErrorView)
}
复制代码

下面是全部代码

import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import cn.zhiup.mobile.R
import com.zhiup.base.base.BaseWidget
/**
 * 公共提示类,此类承载了界面上多数提示功能,数据为空,断网,等凡是列表或者整个界面都需要显示的提示。则需要用到此类
 * 他比@PromptView 类更加灵活。可以任意增加子组件。
 */
class TipsView(ctx: Context,attr:AttributeSet) :BaseWidget(ctx,attr){
    //提示类父容器
    var container: FrameLayout?=null
    //公用,无数据提示UI
    var dataNullView:DataNullView?=null
        get() {
            if (field == null) {
                field = DataNullView(context)
            }
            return field
        }

    //公用,网络错误提示UI
    var netErrorView: NetErrorView?=null
        get() {
            if (field == null) {
                field = NetErrorView(context)
            }
            return field
        }
    //学习界提示UI
    var studyActionView:StudyActionView?=null
         get() {
            if (studyActionView == null) {
                studyActionView = StudyActionView(context)
            }
            return studyActionView
        }

    override fun initView() {
        container = view.findViewById(R.id.container)
    }

    override fun initInnerEvent() {

    }

    fun showDataNull(){
        showView(dataNullView)
    }

    fun showNetError(){
        showView(netErrorView)
    }

    fun showStudyAction(){
        showView(studyActionView)
    }


    override fun getLayoutId() = R.layout.view_tips

    private fun showView(v: View?){
        if(container!=null&&v!=null){
            container?.removeAllViews()
            container?.addView(v, LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT))
        }
        visibility = View.VISIBLE
    }
}
复制代码

转载于:https://juejin.im/post/5bf7f5bae51d454049669abe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值