自己应用的案例
此时用时都不需要判断是否是空,直接使用则就是非空。例:
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 }}复制代码