自定义一个多状态的 View 并发布成第三方库

354 阅读1分钟

在平时界面展示时,需要显示加载中和加载错误的提示,等加载完成后再显示具体的内容信息。这个可以使用自定义ViewGroup的方式来实现。

下面我们就自己定义一个来使用,功能很简单,只有三种状态显示:显示原有内容,显示加载中,显示一个提示。代码中我们只需要继承FrameLayout然后在初始化的时候拿到我们的LayoutInflater,在加载完成后的方法onFinishInflate中记录一下状态和原有内容。然后就是其他两种内容的显示控制了,具体代码可以参考下面的github内容。这样一个简单的界面控件就完成了,我们还可以将它发布到JitPack上,发布完成后就可以在项目中通过远程依赖的方式来使用了。

集成方法:

根项目 build.gradle 添加 jiepack 仓库地址
allprojects {
   repositories {
      ...
      maven { url 'https://jitpack.io' }
  }
}
项目中添加依赖
dependencies {
        implementation 'com.github.xyz0z0:MultiStateLayout:0.2.2'
}
        <xyz.xyz0z0.multistate.MultiStateLayout
            android:id="@+id/mslMain"
            android:layout_width="match_parent"
            android:layout_height="match_parent"><TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="This content" /></xyz.xyz0z0.multistate.MultiStateLayout>

实现效果:

动画.gif

至此一个简单的第三方库就完成了,我们可以在不同的项目中依赖并使用了。当然这里面的实现方式对界面的侵入性有点强,并不是最好的实现方式。

上传 JitPack 参考:www.jianshu.com/p/d71f188c7…