Git Product home page Git Product logo

statelayout's Introduction

原来你也玩原神啊?    

点击开喷

原神, 启动!


『 全部开源项目 』 『 在线简历 』 『 加入我们 』


一个人的技术是有限的



项目 描述
Net 🍉 Android 最强大的创新式协程并发网络请求 GitHub Repo stars
BRV 🌽 Android 最强大的RecyclerView库, 比BRVAH更优雅和强大 GitHub Repo stars
soft-input-event Android软键盘遮挡/平滑动画最佳解决方案 GitHub Repo stars
DrakeTyporaTheme 最好的Typora主题 GitHub Repo stars
spannable Android最好的Spannable构建工具, 首个支持正则匹配/GIF动画/图文混排 GitHub Repo stars
Interval Android计时器工具, 倒计时/正计时/开始/暂停/继续/结束/取消 GitHub Repo stars
Serialize 应用数据存储的神器, 比SQLite/SP更方便, 可创建自动本地读写/应用销毁恢复的字段, GitHub Repo stars
StateLayout 一行代码构建整个应用的缺省页 GitHub Repo stars
StatusBar 🍥 Android 一行代码配置透明状态栏 GitHub Repo stars
Channel 优雅的事件消息框架 🍯 LiveData / Coroutine / 生命周期 特性 EventBus GitHub Repo stars
Tooltip Toast(吐司)BubbleDialog(菊花加载框) GitHub Repo stars
debugKit 开发调试悬浮窗口工具 GitHub Repo stars
LogCat 日志输出工具 GitHub Repo stars
Engine 快速开发基础库 GitHub Repo stars
SougouSkin 简约的搜狗输入法皮肤
简历模板 快速生成简洁的个人简历(部署在线简历) 在线预览
PTCode 为PT Mono添加连字特性(Ligatures)
PlexMono ibm-plex添加连字特性(Ligatures)
cascadia-code-patch 修改cascadia-code字符
JetBrainsMono-patch 修改JetBrainsMono字符

statelayout's People

Contributors

liangjingkanji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

statelayout's Issues

骨骼动画

图片
图片

如果我要根据 item 布局,来创建自定义的骨骼动画,该怎么做?

重复调用showXXX不触发onXXX回调

我需求是empty有好几种状态,我想根据不同场景显示不同的empty layout,根据传入tag去做逻辑,但是发现重复调用showEmpty时无法触发onEmpty回调

如图

有java版本吗 kotlin在java里面不通用
WX20200519-110200@2x

showXXX等方法重复执行动画

比如showContent方法,每次调用都执行一次showContent的动画。
不应该判断当前显示的页面是不是content页面,如果不是 再显示content页面并执行动画吗?

内存泄漏

接入leakcanary后报内存泄漏,
661672021126_ pic

应该是isNetworking()中的context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager这行代码导致的。

image

改成
val connectivityManager = context.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
后再次测试未报内存泄漏,仅供参考.

提个问题。关于error过后的重试问题

你像我在项目中有两套loading。我通过传对象来判断要用哪套loading。现在问题来了,error过后重试的时候,loading的信息是null,是被消除掉的。所以我在想是否提供一个选项或者别的方式去实现保留态之类的

库无法导入

无法添加远程依赖

Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.
Could not determine artifacts for com.github.liangjingkanji:StateLayout:1.3.3
Could not get resource 'https://jitpack.io/com/github/liangjingkanji/StateLayout/1.3.3/StateLayout-1.3.3.aar'.
Could not HEAD 'https://jitpack.io/com/github/liangjingkanji/StateLayout/1.3.3/StateLayout-1.3.3.aar'.
The server may not support the client's requested TLS protocol versions: (TLSv1.2, TLSv1.3). You may need to configure the client to allow other protocols to be used. See: https://docs.gradle.org/7.3.3/userguide/build_environment.html#gradle_system_properties
Remote host terminated the handshake
SSL peer shut down incorrectly

屏幕旋转,报ID重复异常

屏幕发生旋转时报错
java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class androidx.recyclerview.widget.RecyclerView$SavedState instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/rv_list. Make sure other views do not use the same id.

看了下源码View.state()方法中
val stateLayout = StateLayout(context)
stateLayout.id = id

希望将StateLayout类改为Open可继承状态

东哥你好, 这个库非常好用, 我非常喜欢(包括东哥的性格),
但是我碰到两次, 已经集成在我项目里的版本被东哥删掉了原库(1.3.6和1.2.0)😂, 导致我换个电脑后发现无法导入被删掉的版本,
所以为了替换方便, 希望东哥能将StateLayout类改为open类, 方便一些需要的人的二次封装

配置变更后无法保存最后状态

在fragment使用时发生配置变更后状态变回默认content状态,若在loading状态下发生配置变更后变回content状态,明显不符合预期

请问如果自定义一个布局完全不同于四种预设状态的缺省页?

作者你好,我看文档里面的自定义似乎只是改变某一个缺省页布局上细微差别(比如显示服务器返回的不同错误),但是现在我想显示一个未登录状态的页面,需要重新写一个布局layout_unlogin.xml(预设的四个缺省页布局已经有了),那么如果将这个布局(相当于第五个布局)显示出来呢?

关于增加标题栏的显示

你好 当前情况下 如果默认要显示标题栏
只能先增加一层布局 比如线性布局
上面标题栏 下面stateLayout
而statelayout里面也只能一个子view
又要套一层 加上statelayout自己
就是布局起码三层打底

之前自己写过类似封装
标题栏一个viewgroup
内容区域一个viewgoup
是增加了一个自定义属性contenId
来指定内容区域的viewgroup进行动态显示隐藏
这样可以默认显示出标题栏
可以减少一层

如果未指定 则强制只能一个子view
源码里每个类我都仔细看了
如果加上这个 没什么影响
不知道是否考虑不周?

view会重复显示

image
当有网时请求接口,显示empty视图,然后我主动断网请求接口,显示Error视图,再开网请求接口,我只显示空empty视图,但是Error视图还在,重叠在一起了,不知道什么原因(我主动同时显示empty 和 error,都不是同时展示),请指点一下
image

有关于 onRefresh 回调的疑问

state.onRefresh {
    retry()
}

viewModel.result.observe { resource ->
    when (resource.status) {
        LOADING -> state.showLoading()
        SUCCESS -> state.showContent()
        ERROR -> state.showError()
    }
}

viewModel.load()

默认情况下调用 state.showLoading() 的时候,由于参数里的 refresh 默认值为 true,会导致触发 onRefresh 回调。这个行为在利用 onRefresh 做重试的时候会在首次 showLoading() 的时候重复触发网络请求。这个默认行为感觉似乎有点奇怪?

我如何定义不同状态的缺省页来显示

默认情况下只支持四种状态

  • 加载中
  • 错误
  • 内容

但是每个状态的显示函数show**(tag:Any?)支持传递任意对象参数. 你可以在缺省页生命周期函数中根据tag不同创建不同的视图以及逻辑代码

StateChangedHandler缺省页处理者或者on**()等函数都能获得tag. 这样你就可以定义无数状态的缺省页了

比如错误缺省页常常分为无网络或接口错误, 或者展示错误信息, 本框架都支持

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.