首页
学习
活动
专区
圈层
工具
发布

《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

每天第12:30之后更新,因为双休不更新所以内容缓存三天网络取不到就取缓存。 福利: Glide加载图片,点击查看大图,支持双指缩放,一下可查看列表的所有图片,再也不用逐个点击每张图啦。...电影(豆瓣) API是豆瓣提供的,因为限制了每个ip每分钟请求的次数,所以请酌情使用,由此带来的不便请见谅。 电影热映区: 每日更新,展示最新上映的电影热度排行榜。...书籍: 检索豆瓣心理学类的书籍并展示。 抽屉界面 完全仿网易云音乐抽屉界面,包括诸多细节如透明标题栏,背景透明度,水波纹颜色等。...8、水波纹点击效果详细使用与适配。 9、RecyclerView下拉刷新上拉加载。 10、基于DataBinding的ViewHolder。...14、SwipeRefreshLayout结合RecyclerView下拉刷新上拉加载。 15、CoordinatorLayout + Behavior实现标题栏渐变。

1.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在 View 上使用挂起函数 | 实战

    当用户点击其中的某一集时,该集的详细信息将以点击处展开的动画来展示 (0.2 倍速展示): 应用中采用 InboxRecyclerView 库来处理图中的展开动画: fun onEpisodeItemClicked...但不幸的是,这导致了在点击的时候动画异常 (0.2 倍速展示): 实际效果并没有从点击的条目展开,而是从顶部展开了一个看似随机的条目。...// 这个操作会触发数据拉取,并且会更新视图状态 viewModel.expandSeason(nextEpisodeToWatch.seasonId) // 滑动 RecyclerView...使用协程解决问题 在前一篇文章中,我们已经学习了如何使用挂起函数封装回调 API。...如注释中所说,由于 SmoothScroller 真正开始执行的时间是动画的下一帧,所以我们等待一帧后再判断滑动状态。

    2.4K30

    MDC和Compose: 轮播图的两种实现

    而轮播图(Carousel)是现代 UI 中常见的功能之一,展示图片、商品列表等内容时非常有用。...下面的代码展示了如何在 Activity 中初始化 RecyclerView 配置 CarouselSnapHelper 和 CarouselLayoutManager。...举个例子,用 Compose 处理按钮点击事件后改变按钮文本,代码如下 var count by remember { mutableStateOf(0) } Button(onClick = { count...++ }) { Text("Nim已点击了$count times") } 在 Compose 中,状态的变化(count++)直接触发 UI 的更新,而不需要手动去找这个按钮再更新它的文本内容...Jetpack Compose:内置性能优化 Compose 则通过惰性布局(如 LazyColumn、LazyRow)自动优化性能。它只会渲染屏幕上可见的内容,减少了不必要的计算。

    2.4K81

    Jetpack 系列之Paging3,看这一篇就够了~

    点击查询按钮,将数据显示出来,我们看打印如下: 2020-11-14 16:39:19.841 23729-23729/com.example.pagingdatademo D/MainActivity...25.292 23729-23729/com.example.pagingdatademo D/MainActivity: is NotLoading 首先是NotLoading 状态,因为我们什么都没有操作,点击了查询按钮后变成...,日志如下所示: 2020-11-14 17:29:46.234 12512-12512/com.example.pagingdatademo D/MainActivity: 点击了查询按钮 2020-...View.VISIBLE } } } 我们这里是和Adapter分为两个类中的,所以我们要将adapter中的parent当做参数传过来,retry()是一个高阶函数,便于点击重试后...这里我们点击重试dataRecycleViewAdapter的retry()方法即可,我们运行程序求救第一页后,断开网络,然后往下滚动,效果如下所示: ?

    4K10

    Recyclerview竟能如此丝滑,这14个优化策略不容错过...

    引言 在Android开发中,RecyclerView是一种常用的列表控件,用于展示大量数据。然而,随着数据量的增加,RecyclerView的性能可能会受到影响,导致卡顿、内存泄漏等问题。...预加载: 预加载即将显示的视图,提高展示性能。 内存优化: 减少内存的消耗,合理释放内存,避免内存泄漏。 下面针对这些分别给出具体的优化策略。...这个方法主要用于RecyclerView的预取机制,用于在滑动过程中预取与当前位置相邻的Item数据,提高滑动的流畅度。...recyclerView.setItemViewCacheSize(20) // 设置缓存大小为20 共享事件 例如点击事件,可以创建一个共用的监听器对象,并将其设置给所有的ItemView。...View.OnClickListener { view -> // 根据view的ID来执行不同的操作 when (view.id) { R.id.button -> { // 执行按钮点击操作

    3.2K10

    Jetpack 系列之Paging3,看这一篇就够了~

    点击查询按钮,将数据显示出来,我们看打印如下: 2020-11-14 16:39:19.841 23729-23729/com.example.pagingdatademo D/MainActivity...25.292 23729-23729/com.example.pagingdatademo D/MainActivity: is NotLoading 首先是NotLoading 状态,因为我们什么都没有操作,点击了查询按钮后变成...,日志如下所示: 2020-11-14 17:29:46.234 12512-12512/com.example.pagingdatademo D/MainActivity: 点击了查询按钮 2020-...View.VISIBLE } } } 我们这里是和Adapter分为两个类中的,所以我们要将adapter中的parent当做参数传过来,retry()是一个高阶函数,便于点击重试后...这里我们点击重试dataRecycleViewAdapter的retry()方法即可,我们运行程序求救第一页后,断开网络,然后往下滚动,效果如下所示: 如此,我们就在adapter中完成了数据加载状态的显示

    2.5K20

    RecyclerView使用_recyclerview是什么

    布局管理器 线性布局管理器 网格布局管理器 ItemDecoration Item 动画 Item 点击 RecyclerView使用-高级篇(上拉刷新下拉加载更多) 第一步:添加依赖 第二步:布局文件...RecyclerView使用-基础篇 第一步:添加RecyclerView **方法1:**点开任意一个布局文件,找到左边的RecyclerView控件,点击旁边的按钮即可添加RecyclerView。...可以通过对整个Item文件的根布局添加一个点击事件来实现Item的点击 效果如下: RecyclerView使用-高级篇(上拉刷新下拉加载更多) 通常RecyclerView使用的时候需要配合上拉刷新下拉加载更多的功能...import android.widget.TextView; import android.widget.Toast; import com.scwang.smartrefresh.layout.api.RefreshLayout...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.8K31

    界面无小事(三):用RecyclerView + Toolbar做个文件选择器

    用RecyclerView制作一个文件管理器, 并且可以进行文件的多选, 应该是蛮实用的. ---- 最终效果展示 ? 最终效果展示 ---- 布局文件 还是先从最简单的布局文件开始看....下方字符串的话, 见下面的展示图, 依据类型进行显示: ? 布局文件 ? 文件夹 ? 文件 ---- RecyclerView适配器 具体的使用在之前文章里面也细说过了....但是app:layout_scrollFlags="scroll|enterAlways|snap"这行还是很重要的, 作用就是让Toolbar在上拉RecyclerView的时候隐藏, 下拉的时候显示...getMenuInflater().inflate(R.menu.main, menu); return true; } 添加对应按钮的点击监听的话: @Override public boolean.... ---- 悬浮按钮 这个也是非常常用的一个视图类. 如果你点击了悬浮按钮, 就会弹出确认窗口, 关于弹窗, 可以查看我之前的文章. 这里就上一张效果图了. ? 悬浮按钮 ?

    72320

    使用 ConcatAdapter 顺序连接其他 Adapter

    ConcatAdapter 是 recyclerview: 1.2.0-alpha 04 中提供的一个新组件,它可以帮我们顺序地组合多个 Adapter,并让它们显示在同一个 RecyclerView...这方面的一个用例,是在列表头部和底部显示加载状态: 当列表从网络中检索数据时,我们想显示一个加载中的图标;如果出现错误,我们要显示错误信息和重试按钮。 ?...△ RecyclerView 和 Adapter 数据 在头部和底部显示加载状态 我们可以在头部或底部显示一个进度条或错误信息。列表成功加载数据后,头部或底部便不应该再显示任何信息。...要获得完整的实现,请查看这里 拉取请求,它添加了: 从 ViewModel 中暴露出来的 LoadState 显示加载状态的头部和底部的布局 头部和底部的 ViewHolder 对象 一个 ListAdapter...,它基于 LoadState 显示 1 或 0 个项目,每次 LoadState 有变动的时候,我们会通知相应条目进行改动、插入或移除 (您可以在 拉取请求 中查看相应的代码)。

    1.4K20

    Hadess入门到精通,如何导入Nexus制品实现平滑迁移

    Hadess是一款国产开源免费的制品管理工具,包含制品库管理、制品搜索等模块支持常见的制品类型如Maven、npm、Go、Docker、Helm、Generic等,产品功能完善、界面简洁、开源免费,本篇文章将为大家简单讲解如何在...成功登录后展示Hadess首页。...2.2 配置1.进入hadess后,点击左侧设置来到设置页面,点击集成开放后打开服务集成2.进入服务集成后点击添加地址,根据内容输入对应的Nexus地址、账号、密码点击确定即可3、导入制品目前Nexus...导入制品只支持导入Maven类制品1.在Hadess新建一个Maven库,或者使用之前创建库也同样可以,这里我就以新创建的制品库为例2.进入我们刚刚新创建的制品库,点击左侧设置按钮进入设置页面3.进入设置页面后进入制品导入...,点击Nexus导入4.选择你要导入的地址与仓库选择后点击导入即可,拉取成功后即可在制品中查看

    19854

    【深度解析】你真的会用Postman导入JSON文件吗?其实还有更高效方法!

    下面,我们将结合图文,详细梳理如何在Postman中完成JSON文件的导入,并简要对比新型API管理工具的功能差异。Postman中导入JSON文件的标准流程1....启动“Import”功能首先,在Postman应用的左侧导航栏,点击“Import”按钮,进入导入操作界面。2....选择合适的导入方式(多种路径可选)弹窗出现后,用户可根据实际情况选择以下方式导入JSON文件:File(文件方式):直接拖拽JSON文件到窗口内,或点击“Upload Files”进行文件选择与上传。...Link(链接方式):若有可访问的JSON文件网络地址,粘贴链接即可批量拉取。Raw text(原始文本):若仅有JSON代码内容,也可直接粘贴到此区域进行解析。3....完成导入并确认内容处理方式选定或粘贴内容后,点击“Import”按钮,即可完成文件导入流程。

    2K10

    软件测试|好用的pycharm插件推荐(四)——Gitee

    点击 "Install"(安装)按钮来安装插件。安装完成后,重启PyCharm以使插件生效。...点击 "Add Account"(添加账号)按钮。在弹出的窗口中输入Gitee用户名和密码,然后点击 "Log In"(登录)按钮。...点击 "Clone"(克隆)按钮,PyCharm将会自动从Gitee仓库克隆代码到指定的本地目录。...按照以下步骤进行操作:右键单击项目文件夹,选择 "Git" > "Pull"(拉取)。在拉取对话框中,选择拉取的目标分支。点击 "Pull"(拉取)按钮,将远程Gitee仓库的最新代码拉取到本地。...如果在拉取过程中发生了冲突,PyCharm将会提示你解决冲突。点击文件名进入文件比较界面,然后根据提示解决冲突。完成冲突解决后,提交修改并推送代码到远程仓库。

    1.1K30

    基于Kotlin的国产开源推拉流框架anyRTC

    可是在此之前,得先有一个推流工具向MediaMTX推送视频流,这样末端的拉流程序才能从MediaMTX源源不断地拉取视频流。...确保手机和电脑连接了同一个WiFi,再往anyRTC的推流界面填上MediaMTX的完整推流地址如“rtmp://192.168.*.*:1935/stream”,接着点击【开始推流】按钮,打开推流预览界面如下图所示...点击左上角的翻转按钮可切换前后摄像头,点击麦克风按钮可开关声音,可见anyRTC正在把摄像头采集到的视频数据向MediaMTX推流。...然后另一部手机点击App界面上的【直播拉流】区域,打开拉流页面如下图所示: 在拉流页面中输入对应的MediaMTX拉流地址“rtmp://192.168.*.*:1935/stream”,接着点击页面下方的...【开始播放】按钮,此时anyRTC就自动播放来自拉流地址的视频画面如下图所示。

    21810

    GitPuk入门到精通,如何进行代码管理

    1、通过GitPuk推送代码1.1 命令关联远程库在本地的项目里面根据下面的命令,关联GitPuk中创建的代码仓库,推送到GitPuk仓库中1.2 推送代码推送代码成功后,仓库里面显示代码的文件和列表支持两种推送方式...:http方式推送、ssh方式推送1.3 拉取代码GitPuk代码拉取同样支持两种拉取方式分别是http方式拉取、ssh方式拉取进入Gitpuk仓库界面获取仓库地址,执行下面命令拉取 如:git clone...仓库中,点击右上角加好即可新建文件或文件夹查询代码文件内容1....查询仓库提交查询提交:点击仓库名字后点击提交tab,可以根据切换分支、切换用户、提交信息模糊查询。复制commitId点击复制按钮复制完整的commitId,界面只展示了8位。...跳转当前提交代码点击跳转代码图标。会展示对应提交的代码。

    16665

    使用导航组件: 对话框目的地 | MAD Skills

    通过模版创建一个工程 首先,我会展示如何在一个新应用中设定导航的基本元素。然后,我会展示我已经写好的甜甜圈记录应用,这样您可以大致了解这将是一个怎样的应用。(我叫这个为 Julia Child 技巧。...当我们点击按钮的时候,它会如期地带我们去那个对话框目的地。 ?...如果我们查看 DonutList 的代码,该 fragment 包含了那个展示列表数据的 RecyclerView,我们可以发现导航是如何被处理的。...运行该应用展示了它是如何工作的。如您所见,我已经预先在应用中输入了一些重要的甜甜圈数据: ?...点击任一甜甜圈会导航到编辑其信息的对话框 点击 DONE 按钮,将保存更改到数据库中并且返回更新的列表;而点击 CANCEL 按钮,将放弃掉所有的编辑并返回。

    2K30

    得到Android团队无埋点方案

    纵观目前比较成熟的无埋点方案,存在着如下问题: 问题1:通过XPath定位控件,理论上可行,但实践表明这个方案的复杂度非常高,尤其对于处理像GridView,ListView,RecyclerView的控件更是捉襟见肘...例如,点击屏幕上一个按钮,那么按钮所在ViewGroup的mFirstTouchTarget 变量就指向这个按钮。...拿到控件后,通过 Activity的类名+控件所在的layout文件名+控件id对应的资源名,我们就可以确定目标控件的唯一标识。...mStrategies.put("TabLayout", tabLayoutStrategy); } 对于那些完全自定义布局绘制的页面,例如个人中心等页面,业务开发人员需要通过框架api...在线上环境,当用户启动app会拉取配置信息并加载到内存。这样,当用户触发点击行为时,会根据第一步获取的id信息查询配置,如果在配置中查到对应的条目,会将对应的事件及数据上报到服务器。

    3.5K90

    Android实战经验之Kotlin中快速实现MVI架构

    欢迎点击上方"AntDream"关注我,每天进步一点点 MVI(Model-View-Intent)是一种用于构建用户界面的架构模式,强调单向数据流和不可变状态管理。...Intent可以是按钮点击、页面加载等。 4. State State表示View的当前状态。在MVI中,State是不可变的,因此每次状态发生变化时,都会产生一个新状态。...以下是一个详细的步骤指南,展示了如何在Kotlin中实现MVI架构。 1. 定义Model 数据模型表示应用程序的数据结构。...定义Intent 用户意图表示用户的操作,例如点击按钮或滑动列表。...-- Add UI elements here, such as a RecyclerView for displaying users --> 总结 在这个示例中,我们展示了如何在

    1K10

    EMQX+Prometheus+Grafana:MQTT 数据可视化监控实践

    使用第三方监控系统对 EMQX 进行监控有如下好处:可以将 EMQX 的监控数据与其他系统的监控数据进行整合,形成一个完整的监控系统,如监控服务器主机的相关信息;可以使用更加丰富的监控图表,更直观地展示监控数据...Pushgateway 为 Prometheus 的一个组件,用于临时存储数据指标,然后由 Prometheus 从 Pushgateway 中拉取数据指标。...中拉取数据指标。...默认的 Dashboard 模板可以在 EMQX | Grafana Dashboard 中下载,也可以在 EMQX Dashboard 的 监控集成 配置页面中的帮助页面里,点击 下载 按钮下载。...您只需要根据帮助页面的步骤提示,安装 Prometheus 和 Grafana 服务,然后在配置项填入一些关键的配置信息,如 EMQX 的地址、获取指标数据的 API 等,点击生成按钮就可自动生成并下载配置文件

    2.8K20

    推荐一款轻量级且实用的Elasticsearch GUI管理工具elasticvue

    Elasticvue是一个免费且开源的Elasticsearch图形用户界面,您可以使用它来管理集群中的数据 github地址 https://github.com/cars10/elasticvue 下面介绍如何在部署...) (图片点击放大查看) (图片点击放大查看) 二、docker安装elasticvue docker pull cars10/elasticvue 由于网络等XX原因未能拉取成功,采用导入镜像文件的方式来安装...docker run -d --restart=always -p 8080:8080 -v /opt/graylog_opensearch_config.json:/usr/share/nginx/html/api.../default_clusters.json cars10/elasticvue (图片点击放大查看) (图片点击放大查看) 三、配置OpenSearch的CORS参数 echo "http.cors.enabled...) 四、登录elasticvue 导入预设的集群 切换成Dark主题 节点信息 分片信息 索引信息

    1.2K00
    领券