博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kotlin幕后字段和幕后属性解析
阅读量:6868 次
发布时间:2019-06-26

本文共 1830 字,大约阅读时间需要 6 分钟。

自己应用的案例

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

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

下面是全部代码

import android.content.Contextimport android.util.AttributeSetimport android.view.Viewimport android.view.ViewGroupimport android.widget.FrameLayoutimport cn.zhiup.mobile.Rimport 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

你可能感兴趣的文章
Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
查看>>
Eclipse中提高Android SDK Manager下载速度方法
查看>>
五、Storm入门之Bolt
查看>>
web开发插入数据时控制台没报错,可能是数据库表被锁了
查看>>
python_day11のPython操作 pymysql && SQLAchemy
查看>>
格式化输出
查看>>
42幅非常有创意的食品广告欣赏(上篇)
查看>>
SQL性能优化
查看>>
TCP/UDP穿越NAT的P2P通信方法(Hole Punching)
查看>>
django对数据库操作的封装
查看>>
python实现linux下指定目录下文件中的单词个数统计
查看>>
SQL SERVER存储过程中如何使用事务与try catch
查看>>
没什么不可能:剿灭Windows下的29个烦恼
查看>>
String,StringBuffer,StringBuilder的整理
查看>>
mysql 字符截取 实列
查看>>
部署mysql高可用、读写分离集群
查看>>
jquery中下拉多选插件jquery.multiSelect的使用
查看>>
梦想与现实,你会选择什么——一个电子爱好者的迷茫
查看>>
用rabbitMQ实现生产者消费者
查看>>
GRADLE遇见“设备未就绪”
查看>>